browsedb.cpp browsedb.h dbbrowse.cpp dbbrowse.h dbbrowse.rc
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
This commit is contained in:
@@ -1,478 +1,471 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: BrowserDB.h,cpp
|
// Name: BrowserDB.h,cpp
|
||||||
// Purpose: a wxDB;
|
// Purpose: a wxDB class
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 19991127.mj10777
|
// Created: 19991127.mj10777
|
||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- 1)
|
//-- 1)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#include <wx/dbtable.h>
|
#include <wx/dbtable.h>
|
||||||
#include "std.h"
|
#include "std.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Global structure for holding ODBC connection information
|
// Global structure for holding ODBC connection information
|
||||||
// - darf nur einmal im Projekte definiert werden ?? Extra Databasse Klasse ?
|
// - darf nur einmal im Projekte definiert werden ?? Extra Databasse Klasse ?
|
||||||
struct DbStuff ConnectInf; // F<>r DBase
|
struct DbStuff ConnectInf; // F<>r DBase
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
extern DbList* WXDLLEXPORT PtrBegDbList; /* from db.cpp, used in getting back error results from db connections */
|
extern DbList* WXDLLEXPORT PtrBegDbList; /* from db.cpp, used in getting back error results from db connections */
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
char *GetExtendedDBErrorMsg(char *ErrFile, int ErrLine)
|
char *GetExtendedDBErrorMsg(char *ErrFile, int ErrLine)
|
||||||
{
|
{
|
||||||
static wxString msg;
|
static wxString msg;
|
||||||
wxString tStr;
|
wxString tStr;
|
||||||
if (ErrFile || ErrLine)
|
if (ErrFile || ErrLine)
|
||||||
{
|
{
|
||||||
msg += "File: ";
|
msg += "File: ";
|
||||||
msg += ErrFile;
|
msg += ErrFile;
|
||||||
msg += " Line: ";
|
msg += " Line: ";
|
||||||
tStr.Printf("%d",ErrLine);
|
tStr.Printf("%d",ErrLine);
|
||||||
msg += tStr.GetData();
|
msg += tStr.GetData();
|
||||||
// msg += "\n";
|
|
||||||
}
|
|
||||||
msg.Append ("\nODBC errors:\n");
|
|
||||||
// msg += "\n";
|
// msg += "\n";
|
||||||
/* Scan through each database connection displaying
|
}
|
||||||
* any ODBC errors that have occured. */
|
msg.Append ("\nODBC errors:\n");
|
||||||
for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
// msg += "\n";
|
||||||
{
|
/* Scan through each database connection displaying
|
||||||
// Skip over any free connections
|
* any ODBC errors that have occured. */
|
||||||
if (pDbList->Free)
|
for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext)
|
||||||
continue;
|
{
|
||||||
// Display errors for this connection
|
// Skip over any free connections
|
||||||
for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
|
if (pDbList->Free)
|
||||||
{
|
continue;
|
||||||
if (pDbList->PtrDb->errorList[i])
|
// Display errors for this connection
|
||||||
{
|
for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++)
|
||||||
msg.Append(pDbList->PtrDb->errorList[i]);
|
{
|
||||||
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
if (pDbList->PtrDb->errorList[i])
|
||||||
msg.Append("\n");
|
{
|
||||||
}
|
msg.Append(pDbList->PtrDb->errorList[i]);
|
||||||
}
|
if (strcmp(pDbList->PtrDb->errorList[i],"") != 0)
|
||||||
}
|
msg.Append("\n");
|
||||||
msg += "\n";
|
}
|
||||||
return (char*) (const char*) msg;
|
}
|
||||||
|
}
|
||||||
|
msg += "\n";
|
||||||
|
return (char*) (const char*) msg;
|
||||||
} // GetExtendedDBErrorMsg
|
} // GetExtendedDBErrorMsg
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BrowserDB::BrowserDB()
|
BrowserDB::BrowserDB()
|
||||||
{
|
{
|
||||||
Zeiger_auf_NULL(0);
|
Zeiger_auf_NULL(0);
|
||||||
ODBCSource = ""; // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
ODBCSource = ""; // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
||||||
UserName = ""; // database username - must already exist in the data source
|
UserName = ""; // database username - must already exist in the data source
|
||||||
Password = ""; // password database username
|
Password = ""; // password database username
|
||||||
OnFillSqlTyp();
|
OnFillSqlTyp();
|
||||||
OnFilldbTyp();
|
OnFilldbTyp();
|
||||||
} // BrowserDB Constructor
|
} // BrowserDB Constructor
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BrowserDB::~BrowserDB()
|
BrowserDB::~BrowserDB()
|
||||||
{
|
{
|
||||||
Zeiger_auf_NULL(1); // Clean up Tables and Databases (Commit, Close und delete)
|
Zeiger_auf_NULL(1); // Clean up Tables and Databases (Commit, Close und delete)
|
||||||
} // BrowserDB destructor
|
} // BrowserDB destructor
|
||||||
//--------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::Initialize(int Quite)
|
bool BrowserDB::Initialize(int Quite)
|
||||||
{
|
{
|
||||||
if (!OnStartDB(Quite))
|
if (!OnStartDB(Quite))
|
||||||
{
|
{
|
||||||
wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
|
wxLogMessage(_("\n\n-E-> BrowserDB::OnStartDB(%s) : Failed ! "),ODBCSource.c_str());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} // BrowserDB:Initialize
|
} // BrowserDB:Initialize
|
||||||
//--------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::OnStartDB(int Quite)
|
bool BrowserDB::OnStartDB(int Quite)
|
||||||
{
|
{
|
||||||
|
if (!Quite)
|
||||||
|
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
|
||||||
|
if (db_BrowserDB != NULL)
|
||||||
|
{
|
||||||
if (!Quite)
|
if (!Quite)
|
||||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB(%s) : Begin "),ODBCSource.c_str());
|
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
|
||||||
if (db_BrowserDB != NULL)
|
return TRUE;
|
||||||
{
|
}
|
||||||
if (!Quite)
|
// Initialize the ODBC Environment for Database Operations
|
||||||
wxLogMessage(_("\n-I-> BrowserDB::OnStartDB() : DB is allready open."));
|
if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||||
return TRUE;
|
{
|
||||||
}
|
if (!Quite)
|
||||||
// Initialize the ODBC Environment for Database Operations
|
wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
|
||||||
if (SQLAllocEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
return FALSE;
|
||||||
{
|
}
|
||||||
if (!Quite)
|
//---------------------------------------------------------------------------------------
|
||||||
wxLogMessage(_("\n-E-> BrowserDB::OnStartDB() : DB CONNECTION ERROR : A problem occured while trying to get a connection to the data source"));
|
// Connect to datasource
|
||||||
return FALSE;
|
//---------------------------------------------------------------------------------------
|
||||||
}
|
DlgUser *p_Dlg = new DlgUser(pDoc->p_MainFrame, "Username and Password");
|
||||||
//---------------------------------------------------------------------------
|
p_Dlg->pDoc = pDoc;
|
||||||
// Connect to datasource
|
p_Dlg->s_DSN = ODBCSource;
|
||||||
//---------------------------
|
p_Dlg->s_User = UserName;
|
||||||
DlgUser *p_Dlg = new DlgUser(pDoc->p_MainFrame, "Username and Password");
|
p_Dlg->s_Password = Password;
|
||||||
p_Dlg->s_DSN = ODBCSource;
|
p_Dlg->OnInit();
|
||||||
p_Dlg->s_User = UserName;
|
p_Dlg->Fit();
|
||||||
p_Dlg->s_Password = Password;
|
|
||||||
p_Dlg->OnInit();
|
|
||||||
p_Dlg->Fit();
|
|
||||||
|
|
||||||
bool OK = FALSE;
|
bool OK = FALSE;
|
||||||
if (p_Dlg->ShowModal() == wxID_OK)
|
if (p_Dlg->ShowModal() == wxID_OK)
|
||||||
{
|
{
|
||||||
(pDoc->p_DSN+i_Which)->Usr = p_Dlg->s_User;
|
(pDoc->p_DSN+i_Which)->Usr = p_Dlg->s_User;
|
||||||
(pDoc->p_DSN+i_Which)->Pas = p_Dlg->s_Password;
|
(pDoc->p_DSN+i_Which)->Pas = p_Dlg->s_Password;
|
||||||
UserName = p_Dlg->s_User;
|
UserName = p_Dlg->s_User;
|
||||||
Password = p_Dlg->s_Password;
|
Password = p_Dlg->s_Password;
|
||||||
OK = TRUE;
|
OK = TRUE;
|
||||||
}
|
}
|
||||||
//p_Dlg.Destroy();
|
delete p_Dlg;
|
||||||
delete p_Dlg;
|
if (OK)
|
||||||
|
{
|
||||||
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.Dsn, ODBCSource); // ODBC data source name (created with ODBC Administrator under Win95/NT)
|
strcpy(ConnectInf.AuthStr, Password); // password database username
|
||||||
strcpy(ConnectInf.Uid, UserName); // database username - must already exist in the data source
|
db_BrowserDB = GetDbConnection(&ConnectInf);
|
||||||
strcpy(ConnectInf.AuthStr, Password); // password database username
|
// wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
|
||||||
db_BrowserDB = GetDbConnection(&ConnectInf);
|
if (db_BrowserDB == NULL)
|
||||||
// wxLogMessage(">>>%s<<<>>>%s<<<",UserName.c_str(),Password.c_str());
|
{
|
||||||
if (db_BrowserDB == NULL)
|
strcpy(ConnectInf.Dsn, "");
|
||||||
{
|
strcpy(ConnectInf.Uid, "");
|
||||||
strcpy(ConnectInf.Dsn, "");
|
strcpy(ConnectInf.AuthStr, "");
|
||||||
strcpy(ConnectInf.Uid, "");
|
if (!Quite)
|
||||||
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());
|
||||||
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;
|
||||||
}
|
}
|
||||||
return FALSE;
|
//--------------------------------------------------------------------------------------
|
||||||
}
|
if (!Quite)
|
||||||
//--------------------------------------------------------------------------
|
{
|
||||||
if (!Quite)
|
Temp1 = db_BrowserDB->GetDatabaseName();
|
||||||
{
|
Temp2 = db_BrowserDB->GetDataSource();
|
||||||
Temp1 = db_BrowserDB->GetDatabaseName();
|
wxLogMessage(_("-I-> BrowserDB::OnGetDataSourceODBC() - DatabaseName(%s) ; DataSource(%s)"),Temp1.c_str(),Temp2.c_str());
|
||||||
Temp2 = db_BrowserDB->GetDataSource();
|
wxLogMessage(_("-I-> BrowserDB::OnStartDB(%s) : End "),ODBCSource.c_str());
|
||||||
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;
|
||||||
return TRUE;
|
|
||||||
} else return FALSE;
|
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::OnCloseDB(int Quite)
|
bool BrowserDB::OnCloseDB(int Quite)
|
||||||
{
|
{
|
||||||
if (!Quite)
|
if (!Quite)
|
||||||
wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
|
wxLogMessage(_("-I-> BrowserDB::OnCloseDB() : Begin "));
|
||||||
if (db_BrowserDB)
|
if (db_BrowserDB)
|
||||||
{
|
{
|
||||||
db_BrowserDB->Close();
|
db_BrowserDB->Close();
|
||||||
FreeDbConnection(db_BrowserDB);
|
FreeDbConnection(db_BrowserDB);
|
||||||
|
|
||||||
// Free Environment Handle that ODBC uses
|
// Free Environment Handle that ODBC uses
|
||||||
if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
if (SQLFreeEnv(&ConnectInf.Henv) != SQL_SUCCESS)
|
||||||
{
|
{
|
||||||
// Error freeing environment handle
|
// Error freeing environment handle
|
||||||
}
|
}
|
||||||
db_BrowserDB = NULL;
|
db_BrowserDB = NULL;
|
||||||
}
|
}
|
||||||
if (!Quite)
|
if (!Quite)
|
||||||
wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
|
wxLogMessage(_("\n-I-> BrowserDB::OnCloseDB() : End "));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::OnGetNext(int Cols,int Quite)
|
bool BrowserDB::OnGetNext(int Cols,int Quite)
|
||||||
{
|
{
|
||||||
SDWORD cb;
|
SDWORD cb;
|
||||||
int i_dbDataType;
|
int i_dbDataType;
|
||||||
int i=0;
|
int i=0;
|
||||||
char s_temp[1024+1];
|
char s_temp[1024+1];
|
||||||
long l_temp;
|
long l_temp;
|
||||||
double f_temp;
|
double f_temp;
|
||||||
int AnzError=0;
|
int AnzError=0;
|
||||||
TIMESTAMP_STRUCT t_temp;
|
TIMESTAMP_STRUCT t_temp;
|
||||||
wxString Temp0;
|
wxString Temp0;
|
||||||
//-----------------------------
|
//-----------------------------
|
||||||
if (!db_BrowserDB->GetNext())
|
if (!db_BrowserDB->GetNext())
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
Temp0.Printf(_("\n-E-> BrowserDB::OnGetNext - ODBC-Error with GetNext \n-E-> "));
|
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__);
|
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||||
wxLogMessage(Temp0);
|
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);
|
wxMessageBox(Temp0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (i=0;i<Cols;i++)
|
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,f_temp);
|
||||||
{
|
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||||
strcpy((cl_BrowserDB+i)->tableName,"-E->");
|
}
|
||||||
i_dbDataType = (cl_BrowserDB->pColFor+i)->i_dbDataType;
|
break;
|
||||||
if (i_dbDataType == 0) // Filter unsupported dbDataTypes
|
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 (((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_VARCHAR) || ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_LONGVARCHAR))
|
if (!db_BrowserDB->GetData(i+1,(cl_BrowserDB->pColFor+i)->i_sqlDataType,&t_temp,sizeof(t_temp), &cb))
|
||||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
{
|
||||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DATE)
|
Temp0.Printf(_("\n-E-> BrowserDB::OnGetData - ODBC-Error with GetNext \n-E-> "));
|
||||||
i_dbDataType = DB_DATA_TYPE_DATE;
|
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_BIT)
|
}
|
||||||
i_dbDataType = DB_DATA_TYPE_INTEGER;
|
else
|
||||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_NUMERIC)
|
{
|
||||||
i_dbDataType = DB_DATA_TYPE_VARCHAR;
|
// i_Nation = 0 = timestamp , 1=EU, 2=UK, 3=International, 4=US
|
||||||
if ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_REAL)
|
if (((cl_BrowserDB->pColFor+i)->i_Nation == 0) || // TS YYYY-MM-DD
|
||||||
i_dbDataType = DB_DATA_TYPE_FLOAT;
|
((cl_BrowserDB->pColFor+i)->i_Nation == 3)) // IT YYYY-MM-DD
|
||||||
}
|
{
|
||||||
if ((i_dbDataType == DB_DATA_TYPE_INTEGER) && ((cl_BrowserDB->pColFor+i)->i_sqlDataType == SQL_C_DOUBLE))
|
Temp0.Printf((cl_BrowserDB->pColFor+i)->s_Field,t_temp.year,t_temp.month,t_temp.day,
|
||||||
{ // 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,
|
|
||||||
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||||
}
|
}
|
||||||
if ( ((cl_BrowserDB->pColFor+i)->i_Nation == 1) || // EU DD.MM.YYYY
|
if (((cl_BrowserDB->pColFor+i)->i_Nation == 1) || // EU DD.MM.YYYY
|
||||||
((cl_BrowserDB->pColFor+i)->i_Nation == 2)) // UK 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,
|
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);
|
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||||
}
|
}
|
||||||
if ((cl_BrowserDB->pColFor+i)->i_Nation == 3) // US MM/DD/YYYY
|
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,
|
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);
|
t_temp.hour, t_temp.minute, t_temp.second, t_temp.fraction);
|
||||||
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
AnzError++;
|
AnzError++;
|
||||||
if (AnzError <= 100)
|
if (AnzError <= 100)
|
||||||
{
|
{
|
||||||
Temp0 = (cl_BrowserDB+i)->colName;
|
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());
|
wxLogMessage(_("-E-> BrowserDB::OnGetNext - DB_DATA_TYPE_?? (%d) in Col(%s)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,Temp0.c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return TRUE;
|
return TRUE;
|
||||||
Temp0.Printf(_("-E-> unknown Format(%d) - sql(%d)"),(cl_BrowserDB->pColFor+i)->i_dbDataType,(cl_BrowserDB->pColFor+i)->i_sqlDataType);
|
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());
|
strcpy((cl_BrowserDB+i)->tableName,Temp0.c_str());
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// wxLogMessage("-E-> BrowserDB::OnGetNext - End");
|
// wxLogMessage("-E-> BrowserDB::OnGetNext - End");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::OnSelect(wxString tb_Name, int Quite)
|
bool BrowserDB::OnSelect(wxString tb_Name, int Quite)
|
||||||
{
|
{
|
||||||
wxString SQLStmt;
|
wxString SQLStmt;
|
||||||
i_Records = 0;
|
i_Records = 0;
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
|
SQLStmt.sprintf("SELECT * FROM %s",tb_Name.c_str());
|
||||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
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.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||||
wxLogMessage(Temp0);
|
wxLogMessage(Temp0);
|
||||||
wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
|
wxMessageBox("-E-> BrowserDB::OnSelect - GetData()");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
while (db_BrowserDB->GetNext())
|
while (db_BrowserDB->GetNext())
|
||||||
{
|
{
|
||||||
i_Records++;
|
i_Records++;
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
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.Printf(_("\n-E-> BrowserDB::OnSelect - ODBC-Error with ExecSql of >%s<.\n-E-> "),tb_Name.c_str());
|
||||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||||
wxLogMessage(Temp0);
|
wxLogMessage(Temp0);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, sizeof(Name), TRUE, TRUE); // Primary index
|
// SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, sizeof(Name), TRUE, TRUE); // Primary index
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (!Quite)
|
if (!Quite)
|
||||||
{
|
{
|
||||||
wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
|
wxLogMessage(_("\n-I-> BrowserDB::OnSelect(%s) Records(%d): End "),tb_Name.c_str(),i_Records);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool BrowserDB::OnExecSql(wxString SQLStmt, int Quite)
|
bool BrowserDB::OnExecSql(wxString SQLStmt, int Quite)
|
||||||
{
|
{
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (!db_BrowserDB->ExecSql((char *)(SQLStmt.GetData())))
|
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.Printf(_("\n-E-> BrowserDB::OnExecSQL - ODBC-Error with ExecSql of >%s<.\n-E-> "),SQLStmt.c_str());
|
||||||
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
Temp0 += GetExtendedDBErrorMsg(__FILE__,__LINE__);
|
||||||
if (!Quite)
|
|
||||||
wxLogMessage(Temp0);
|
|
||||||
else
|
|
||||||
wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
if (!Quite)
|
if (!Quite)
|
||||||
{
|
wxLogMessage(Temp0);
|
||||||
// wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
|
else
|
||||||
}
|
wxMessageBox("-E-> BrowserDB::OnExecSql - ExecSql()");
|
||||||
return TRUE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
if (!Quite)
|
||||||
|
{
|
||||||
|
// wxLogMessage(_("\n-I-> BrowserDB::OnExecSql(%s) - End "),SQLStmt.c_str());
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
wxDbInf* BrowserDB::OnGetCatalog(int Quite)
|
wxDbInf* BrowserDB::OnGetCatalog(int Quite)
|
||||||
{
|
{
|
||||||
char UName[255];
|
char UName[255];
|
||||||
strcpy(UName,UserName);
|
strcpy(UName,UserName);
|
||||||
ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
|
ct_BrowserDB = db_BrowserDB->GetCatalog(UName);
|
||||||
return ct_BrowserDB;
|
return ct_BrowserDB;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
wxColInf* BrowserDB::OnGetColumns(char *tableName, int numCols,int Quite)
|
wxColInf* BrowserDB::OnGetColumns(char *tableName, int numCols,int Quite)
|
||||||
{
|
{
|
||||||
char UName[255];
|
char UName[255];
|
||||||
int i;
|
int i;
|
||||||
strcpy(UName,UserName);
|
strcpy(UName,UserName);
|
||||||
cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
|
cl_BrowserDB = db_BrowserDB->GetColumns(tableName,&numCols,UName);
|
||||||
cl_BrowserDB->pColFor = new wxColFor[numCols];
|
cl_BrowserDB->pColFor = new wxColFor[numCols];
|
||||||
for (i=0;i<numCols;i++)
|
for (i=0;i<numCols;i++)
|
||||||
{
|
{
|
||||||
(cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
|
(cl_BrowserDB->pColFor+i)->Format(1,(cl_BrowserDB+i)->dbDataType,(cl_BrowserDB+i)->sqlDataType,
|
||||||
(cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
|
(cl_BrowserDB+i)->columnSize, (cl_BrowserDB+i)->decimalDigits);
|
||||||
}
|
}
|
||||||
return cl_BrowserDB;
|
return cl_BrowserDB;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void BrowserDB::Zeiger_auf_NULL(int Art)
|
void BrowserDB::Zeiger_auf_NULL(int Art)
|
||||||
{
|
{
|
||||||
if (Art == 1) // L<>schen
|
if (Art == 1) // L<>schen
|
||||||
{
|
{
|
||||||
if (cl_BrowserDB != NULL)
|
if (cl_BrowserDB != NULL)
|
||||||
{ // Destroy the memory
|
{ // Destroy the memory
|
||||||
delete [] cl_BrowserDB;
|
delete [] cl_BrowserDB;
|
||||||
}
|
}
|
||||||
if (ct_BrowserDB != NULL)
|
if (ct_BrowserDB != NULL)
|
||||||
{ // Destroy the memory
|
{ // Destroy the memory
|
||||||
delete [] ct_BrowserDB;
|
delete [] ct_BrowserDB;
|
||||||
}
|
}
|
||||||
if (db_BrowserDB != NULL)
|
if (db_BrowserDB != NULL)
|
||||||
{
|
{
|
||||||
db_BrowserDB->CommitTrans();
|
db_BrowserDB->CommitTrans();
|
||||||
db_BrowserDB->Close();
|
db_BrowserDB->Close();
|
||||||
CloseDbConnections();
|
CloseDbConnections();
|
||||||
delete db_BrowserDB;
|
delete db_BrowserDB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cl_BrowserDB = NULL;
|
cl_BrowserDB = NULL;
|
||||||
ct_BrowserDB = NULL;
|
ct_BrowserDB = NULL;
|
||||||
db_BrowserDB = NULL;
|
db_BrowserDB = NULL;
|
||||||
p_LogWindow = NULL;
|
p_LogWindow = NULL;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void BrowserDB::OnFillSqlTyp()
|
void BrowserDB::OnFillSqlTyp()
|
||||||
{
|
{
|
||||||
i_SqlTyp[1] = SQL_C_BINARY; s_SqlTyp[1] = "SQL_C_BINARY";
|
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[2] = SQL_C_BIT; s_SqlTyp[2] = "SQL_C_BIT";
|
||||||
i_SqlTyp[3] = SQL_C_BOOKMARK; s_SqlTyp[3] = "SQL_C_BOOKMARK";
|
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[4] = SQL_C_CHAR; s_SqlTyp[4] = "SQL_C_CHAR";
|
||||||
i_SqlTyp[5] = SQL_C_DATE; s_SqlTyp[5] = "SQL_C_DATE";
|
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[6] = SQL_C_DEFAULT; s_SqlTyp[6] = "SQL_C_DEFAULT";
|
||||||
i_SqlTyp[7] = SQL_C_DOUBLE; s_SqlTyp[7] = "SQL_C_DOUBLE";
|
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[8] = SQL_C_FLOAT; s_SqlTyp[8] = "SQL_C_FLOAT";
|
||||||
i_SqlTyp[9] = SQL_C_LONG; s_SqlTyp[9] = "SQL_C_LONG";
|
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[10] = SQL_C_SHORT; s_SqlTyp[10] = "SQL_C_SHORT";
|
||||||
i_SqlTyp[11] = SQL_C_SLONG; s_SqlTyp[11] = "SQL_C_SLONG";
|
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[12] = SQL_C_SSHORT; s_SqlTyp[12] = "SQL_C_SSHORT";
|
||||||
i_SqlTyp[13] = SQL_C_STINYINT; s_SqlTyp[13] = "SQL_C_STINYINT";
|
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[14] = SQL_C_TIME; s_SqlTyp[14] = "SQL_C_TIME";
|
||||||
i_SqlTyp[15] = SQL_C_TIMESTAMP; s_SqlTyp[15] = "SQL_C_TIMESTAMP";
|
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[16] = SQL_C_TINYINT; s_SqlTyp[16] = "SQL_C_TINYINT";
|
||||||
i_SqlTyp[17] = SQL_C_ULONG; s_SqlTyp[17] = "SQL_C_ULONG";
|
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[18] = SQL_C_USHORT; s_SqlTyp[18] = "SQL_C_USHORT";
|
||||||
i_SqlTyp[19] = SQL_C_UTINYINT; s_SqlTyp[19] = "SQL_C_UTINYINT";
|
i_SqlTyp[19] = SQL_C_UTINYINT; s_SqlTyp[19] = "SQL_C_UTINYINT";
|
||||||
i_SqlTyp[20] = SQL_VARCHAR; s_SqlTyp[20] = "SQL_VARCHAR";
|
i_SqlTyp[20] = SQL_VARCHAR; s_SqlTyp[20] = "SQL_VARCHAR";
|
||||||
i_SqlTyp[21] = SQL_NUMERIC; s_SqlTyp[21] = "SQL_NUMERIC";
|
i_SqlTyp[21] = SQL_NUMERIC; s_SqlTyp[21] = "SQL_NUMERIC";
|
||||||
i_SqlTyp[22] = SQL_LONGVARCHAR; s_SqlTyp[22] = "SQL_LONGVARCHAR";
|
i_SqlTyp[22] = SQL_LONGVARCHAR; s_SqlTyp[22] = "SQL_LONGVARCHAR";
|
||||||
i_SqlTyp[23] = SQL_REAL; s_SqlTyp[23] = "SQL_REAL";
|
i_SqlTyp[23] = SQL_REAL; s_SqlTyp[23] = "SQL_REAL";
|
||||||
i_SqlTyp[0] = 23; s_SqlTyp[0] = "";
|
i_SqlTyp[0] = 23; s_SqlTyp[0] = "";
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void BrowserDB::OnFilldbTyp()
|
void BrowserDB::OnFilldbTyp()
|
||||||
{
|
{
|
||||||
i_dbTyp[1] = DB_DATA_TYPE_VARCHAR; s_dbTyp[1] = "DB_DATA_TYPE_VARCHAR";
|
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[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[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[4] = DB_DATA_TYPE_DATE; s_dbTyp[4] = "DB_DATA_TYPE_DATE";
|
||||||
i_dbTyp[0] = 4; s_dbTyp[0] = "";
|
i_dbTyp[0] = 4; s_dbTyp[0] = "";
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,26 +1,26 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: browsedb.h
|
// Name: browsedb.h
|
||||||
// Purpose: a wxDB ;
|
// Purpose: a wxDB class
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 19991127.mj10777
|
// Created: 19991127.mj10777
|
||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- Zu tun in browsedb.h
|
//-- Zu tun in browsedb.h
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- 1)
|
//-- 1)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Global structure for holding ODBC connection information
|
// Global structure for holding ODBC connection information
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
extern struct DbStuff DbConnectInf;
|
extern struct DbStuff DbConnectInf;
|
||||||
class mjDoc;
|
class mjDoc;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class BrowserDB
|
class BrowserDB
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// Pointer to the main database connection used in the program. This
|
// Pointer to the main database connection used in the program. This
|
||||||
// pointer would normally be used for doing things as database lookups
|
// pointer would normally be used for doing things as database lookups
|
||||||
// for user login names and passwords, getting workstation settings, etc.
|
// 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
|
// the entire program to use for READ-ONLY database accesses, but for each
|
||||||
// table object which will do a CommitTrans() or RollbackTrans() that a
|
// table object which will do a CommitTrans() or RollbackTrans() that a
|
||||||
// new wxDB object be created and used for it.
|
// new wxDB object be created and used for it.
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxDB* db_BrowserDB;
|
wxDB* db_BrowserDB;
|
||||||
wxDbInf* ct_BrowserDB;
|
wxDbInf* ct_BrowserDB;
|
||||||
wxColInf* cl_BrowserDB;
|
wxColInf* cl_BrowserDB;
|
||||||
wxString ODBCSource, UserName, Password;
|
wxString ODBCSource, UserName, Password;
|
||||||
mjDoc *pDoc;
|
mjDoc *pDoc;
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
||||||
wxString ODBCText;
|
wxString ODBCText;
|
||||||
wxTextCtrl* p_LogWindow;
|
wxTextCtrl* p_LogWindow;
|
||||||
@@ -57,12 +57,12 @@ class BrowserDB
|
|||||||
int i_Which;
|
int i_Which;
|
||||||
int i_Records;
|
int i_Records;
|
||||||
int i_Cols;
|
int i_Cols;
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
BrowserDB();
|
BrowserDB();
|
||||||
~BrowserDB();
|
~BrowserDB();
|
||||||
void Zeiger_auf_NULL(int Art);
|
void Zeiger_auf_NULL(int Art);
|
||||||
bool Initialize(int Quite);
|
bool Initialize(int Quite);
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
bool OnStartDB(int Quite);
|
bool OnStartDB(int Quite);
|
||||||
bool OnCloseDB(int Quite);
|
bool OnCloseDB(int Quite);
|
||||||
bool OnSelect(wxString tb_Name,int Quite);
|
bool OnSelect(wxString tb_Name,int Quite);
|
||||||
@@ -72,6 +72,6 @@ class BrowserDB
|
|||||||
wxColInf* OnGetColumns(char *tableName, int numCols,int Quite);
|
wxColInf* OnGetColumns(char *tableName, int numCols,int Quite);
|
||||||
void OnFillSqlTyp();
|
void OnFillSqlTyp();
|
||||||
void OnFilldbTyp();
|
void OnFilldbTyp();
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
}; // BrowserDB class definition
|
}; // BrowserDB class definition
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: dbbrowse.cpp
|
// Name: dbbrowse.cpp
|
||||||
// Purpose: Through ODBC - Databases Browsen
|
// Purpose: Through ODBC - Databases Browsen
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
@@ -8,61 +8,50 @@
|
|||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
#endif
|
#endif
|
||||||
#include "bitmaps/logo.xpm"
|
#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 "std.h" // sorgsam Pflegen !
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- Some Global Vars for this file ----------------------------------------
|
//-- Some Global Vars for this file ------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
MainFrame *frame = NULL; // The one and only MainFrame
|
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)
|
BEGIN_EVENT_TABLE(MainFrame, wxFrame)
|
||||||
EVT_MENU(QUIT, MainFrame::OnQuit)
|
EVT_MENU(QUIT, MainFrame::OnQuit)
|
||||||
EVT_MENU(ABOUT, MainFrame::OnAbout)
|
EVT_MENU(ABOUT, MainFrame::OnAbout)
|
||||||
EVT_MENU(HELP, MainFrame::OnHelp)
|
EVT_MENU(HELP, MainFrame::OnHelp)
|
||||||
EVT_SIZE(MainFrame::OnSize)
|
EVT_SIZE(MainFrame::OnSize)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
IMPLEMENT_APP(MyApp)
|
IMPLEMENT_APP(MainApp)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// `Main program' equivalent, creating windows and returning main app frame
|
// 'Main program' equivalent, creating windows and returning main app frame
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool MyApp::OnInit(void)
|
bool MainApp::OnInit(void)
|
||||||
{
|
{
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// set the language to use
|
// set the language to use
|
||||||
@@ -70,8 +59,10 @@ bool MyApp::OnInit(void)
|
|||||||
const char *language = NULL;
|
const char *language = NULL;
|
||||||
const char *langid = NULL;
|
const char *langid = NULL;
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
//-- Graphic File suport - use only when needed, otherwise big .exe's
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
#if wxUSE_LIBPNG
|
#if wxUSE_LIBPNG
|
||||||
wxImage::AddHandler( new wxPNGHandler ); // use only when needed, otherwise big .exe's
|
wxImage::AddHandler( new wxPNGHandler ); // needed for help System
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
#if wxUSE_LIBJPEG
|
#if wxUSE_LIBJPEG
|
||||||
@@ -82,11 +73,11 @@ bool MyApp::OnInit(void)
|
|||||||
wxImage::AddHandler( new wxPNMHandler ); // use only when needed, otherwise big .exe's
|
wxImage::AddHandler( new wxPNMHandler ); // use only when needed, otherwise big .exe's
|
||||||
*/
|
*/
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
// wxBitmap::AddHandler( new wxXPMFileHandler ); // use only when needed, otherwise big .exe's
|
// wxBitmap::AddHandler( new wxXPMFileHandler ); // Attempt to use XPS instead of ico
|
||||||
// wxBitmap::AddHandler( new wxXPMDataHandler ); // use only when needed, otherwise big .exe's
|
// wxBitmap::AddHandler( new wxXPMDataHandler ); // - Attempt failed
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
langid = "std"; // BJO20000125 instead of ""
|
langid = "std"; // Standard language is "std" = english
|
||||||
switch ( argc )
|
switch ( argc )
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -114,13 +105,12 @@ bool MyApp::OnInit(void)
|
|||||||
// name is the name of the executable and the vendor name is the same)
|
// name is the name of the executable and the vendor name is the same)
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
SetVendorName("mj10777");
|
SetVendorName("mj10777");
|
||||||
SetAppName("DBBrowser"); // not needed, it's the default value
|
SetAppName("DBBrowser");
|
||||||
p_ProgramCfg = wxConfigBase::Get();
|
p_ProgramCfg = wxConfigBase::Get();
|
||||||
// p_ProgramCfg->DeleteAll();
|
// p_ProgramCfg->DeleteAll();
|
||||||
p_ProgramCfg->SetPath("/");
|
p_ProgramCfg->SetPath("/");
|
||||||
wxString Temp0, Temp1;
|
wxString Temp0, Temp1;
|
||||||
Temp0.Empty();
|
Temp0.Empty();
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
//-- Set the Language and remember it for the next time. --------------------------------
|
//-- Set the Language and remember it for the next time. --------------------------------
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
@@ -136,7 +126,7 @@ bool MyApp::OnInit(void)
|
|||||||
Temp0 = langid;
|
Temp0 = langid;
|
||||||
p_ProgramCfg->Write("/Local/langid",Temp0); // >const char *langid< can't be used here
|
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 != "std")
|
||||||
{
|
{
|
||||||
if (Temp0 == "cz")
|
if (Temp0 == "cz")
|
||||||
@@ -172,37 +162,29 @@ bool MyApp::OnInit(void)
|
|||||||
p_ProgramCfg->Write("/Local/language",Temp0);
|
p_ProgramCfg->Write("/Local/language",Temp0);
|
||||||
Temp0 = "std"; // allways english if not german or french (at the moment austrian)
|
Temp0 = "std"; // allways english if not german or french (at the moment austrian)
|
||||||
}
|
}
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
Temp0 = "NONE";
|
Temp0 = "NONE";
|
||||||
p_ProgramCfg->Write("/NONE",Temp0);
|
p_ProgramCfg->Write("/NONE",Temp0);
|
||||||
p_ProgramCfg->Write("/Paths/NONE",Temp0);
|
p_ProgramCfg->Write("/Paths/NONE",Temp0);
|
||||||
p_ProgramCfg->Write("/MainFrame/NONE",Temp0);
|
p_ProgramCfg->Write("/MainFrame/NONE",Temp0);
|
||||||
//-----------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_ProgramCfg->Write("/Paths/Work",wxGetCwd());
|
p_ProgramCfg->Write("/Paths/Work",wxGetCwd());
|
||||||
p_ProgramCfg->SetPath("/");
|
p_ProgramCfg->SetPath("/");
|
||||||
//-----------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// or you could also write something like this:
|
// restore frame position and size, if empty start Values (1,1) and (750,600)
|
||||||
// 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
|
|
||||||
int x = p_ProgramCfg->Read("/MainFrame/x", 1), y = p_ProgramCfg->Read("/MainFrame/y", 1),
|
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
|
// Create the main frame window
|
||||||
frame = new MainFrame((wxFrame *) NULL, (char *) _("DBBrowser - mj10777"),x,y,w,h);
|
frame = new MainFrame((wxFrame *) NULL, (char *) _("DBBrowser - mj10777"),wxPoint(x,y),wxSize(w,h));
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// This reduces flicker effects - even better would be to define OnEraseBackground
|
// Set the Backgroundcolour (only need if your are NOT using wxSYS_COLOUR_BACKGROUND)
|
||||||
// to do Temp0. When the list control's scrollbars are show or hidden, the
|
frame->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BACKGROUND));
|
||||||
// frame is sent a background erase event.
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
frame->SetBackgroundColour( *wxWHITE );
|
|
||||||
// frame->SetBackgroundColour(wxColour(255, 255, 255));
|
// 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
|
// Make a menubar
|
||||||
wxMenu *file_menu = new wxMenu;
|
wxMenu *file_menu = new wxMenu;
|
||||||
@@ -223,9 +205,8 @@ bool MyApp::OnInit(void)
|
|||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int width, height;
|
int width, height;
|
||||||
frame->GetClientSize(&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));
|
// p_Splitter->SetCursor(wxCursor(wxCURSOR_PENCIL));
|
||||||
frame->pDoc = new mjDoc();
|
frame->pDoc = new mjDoc();
|
||||||
frame->pDoc->p_MainFrame = frame;
|
frame->pDoc->p_MainFrame = frame;
|
||||||
@@ -233,8 +214,6 @@ bool MyApp::OnInit(void)
|
|||||||
frame->pDoc->p_Splitter->pDoc = frame->pDoc; // ControlBase: saving the Sash
|
frame->pDoc->p_Splitter->pDoc = frame->pDoc; // ControlBase: saving the Sash
|
||||||
if (!frame->pDoc->OnNewDocument())
|
if (!frame->pDoc->OnNewDocument())
|
||||||
frame->Close(TRUE);
|
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 !
|
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 ---
|
//-- Problem : GetClientSize(Width,Hight) are not the same as the values given in the ---
|
||||||
@@ -246,49 +225,27 @@ bool MyApp::OnInit(void)
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
//-- Help : ---
|
//-- Help : ---
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
frame->p_Help = new wxHtmlHelpController(); // construct the Help System
|
||||||
frame->help.UseConfig(p_ProgramCfg);
|
frame->p_Help->UseConfig(p_ProgramCfg); // Don't rember what this was for
|
||||||
frame->help.AddBook(langhelp);
|
frame->p_Help->AddBook(langhelp); // Use the language set
|
||||||
/*
|
frame->pDoc->p_Help = frame->p_Help; // Save the information to the document
|
||||||
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
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// Show the frame
|
// Show the frame
|
||||||
frame->Show(TRUE);
|
frame->Show(TRUE);
|
||||||
SetTopWindow(frame);
|
SetTopWindow(frame);
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
|
p_ProgramCfg->Flush(TRUE); // sicher Objekt
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
} // bool MainApp::OnInit(void)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// My frame constructor
|
// My frame constructor
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
MainFrame::MainFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
|
MainFrame::MainFrame(wxFrame *frame, char *title, const wxPoint& pos, const wxSize& size):
|
||||||
wxFrame(frame, SPLITTER_FRAME, title, wxPoint(x, y), wxSize(w, h))
|
wxFrame(frame, -1, title, pos, size)
|
||||||
{
|
{
|
||||||
InitializeMenu();
|
//--- Everything is done in MainApp -----------------------------------------------------
|
||||||
// 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) );
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
MainFrame::~MainFrame(void)
|
MainFrame::~MainFrame(void)
|
||||||
{
|
{
|
||||||
// save the control's values to the config
|
// 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
|
// Get() it doesn't try to create one if there is none (definitely not what
|
||||||
// we want here!)
|
// we want here!)
|
||||||
// delete wxConfigBase::Set((wxConfigBase *) NULL);
|
// delete wxConfigBase::Set((wxConfigBase *) NULL);
|
||||||
p_ProgramCfg->Flush(TRUE); // sichert Objekt
|
p_ProgramCfg->Flush(TRUE); // saves Objekt
|
||||||
delete frame->pDoc;
|
delete frame->pDoc; // Cleanup
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
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);
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void MainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
void MainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
// Close the help frame; this will cause the config data to
|
// Close the help frame; this will cause the config data to get written.
|
||||||
// get written.
|
if (p_Help->GetFrame()) // returns NULL if no help frame active
|
||||||
if (help.GetFrame()) // returns NULL if no help frame active
|
p_Help->GetFrame()->Close(TRUE);
|
||||||
help.GetFrame()->Close(TRUE);
|
|
||||||
Close(TRUE);
|
Close(TRUE);
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxMessageDialog dialog(this, _("DBBrowser\nMark Johnson\nBerlin, Germany\nmj10777@gmx.net\n (c) 1999"),
|
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();
|
dialog.ShowModal();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void MainFrame::OnHelp(wxCommandEvent& WXUNUSED(event))
|
void MainFrame::OnHelp(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
help.Display("Main page");
|
p_Help->Display("Main page");
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: dbbrowse.h
|
// Name: dbbrowse.h
|
||||||
// Purpose: Through ODBC - Databases Browsen
|
// Purpose: Through ODBC - Databases Browsen
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
@@ -7,49 +7,46 @@
|
|||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Define a new application type
|
// Define a new application type
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class MyApp: public wxApp
|
class MainApp: public wxApp
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bool OnInit(void);
|
bool OnInit(void); // Programmstart
|
||||||
wxLocale m_locale; // locale we'll be using
|
wxLocale m_locale; // locale we'll be using and language support
|
||||||
};
|
};
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Define a new frame type
|
// Define a new frame type
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class MainFrame: public wxFrame
|
class MainFrame: public wxFrame
|
||||||
{
|
{
|
||||||
public:
|
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);
|
~MainFrame(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// menu callbacks
|
// menu callbacks
|
||||||
void InitializeMenu();
|
|
||||||
void OnQuit(wxCommandEvent& event);
|
void OnQuit(wxCommandEvent& event);
|
||||||
void OnAbout(wxCommandEvent& event);
|
void OnAbout(wxCommandEvent& event);
|
||||||
void OnHelp(wxCommandEvent& event);
|
void OnHelp(wxCommandEvent& event);
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
wxHtmlHelpController help;
|
wxHtmlHelpController *p_Help;
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
int DiffW, DiffH;
|
int DiffW, DiffH;
|
||||||
mjDoc *pDoc;
|
mjDoc *pDoc;
|
||||||
DocSplitterWindow *p_Splitter;
|
DocSplitterWindow *p_Splitter;
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// ID for the menu quit command
|
// ID for the menu quit command
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#define QUIT 1
|
#define QUIT 777
|
||||||
#define ABOUT 2
|
#define ABOUT 778
|
||||||
#define HELP 3
|
#define HELP 779
|
||||||
#define SPLITTER_FRAME 100
|
|
||||||
#define SPLITTER_WINDOW 101
|
|
||||||
#define TREE_CTRL_PGM 102
|
#define TREE_CTRL_PGM 102
|
||||||
#define GRID_CTRL 103
|
#define GRID_CTRL 103
|
||||||
#define TREE_CTRL_DB 104
|
#define TREE_CTRL_DB 104
|
||||||
#define GRID_CTRL_DB 105
|
#define GRID_CTRL_DB 105
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Logo ICON "bitmaps\\logo.ico"
|
aLogo ICON "bitmaps\\logo.ico"
|
||||||
Col ICON "bitmaps\\col.ico"
|
Col ICON "bitmaps\\col.ico"
|
||||||
DSNClosed ICON "bitmaps\\dsnclose.ico"
|
DSNClosed ICON "bitmaps\\dsnclose.ico"
|
||||||
DSNOpen ICON "bitmaps\\dsnopen.ico"
|
DSNOpen ICON "bitmaps\\dsnopen.ico"
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DBGrid.cpp
|
// Name: DBGrid.cpp
|
||||||
// Purpose: wxGrid sample
|
// Purpose: wxGrid sample
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
@@ -7,83 +7,81 @@
|
|||||||
// Copyright: (c)
|
// Copyright: (c)
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #includes that every .cpp needs --- 19990807.mj10777 ---
|
//-- all #includes that every .cpp needs --- 19990807.mj10777 ----------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#include "std.h" // sorgsam Pflegen !
|
#include "std.h" // sorgsam Pflegen !
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BEGIN_EVENT_TABLE(DBGrid, wxGrid)
|
BEGIN_EVENT_TABLE(DBGrid, wxGrid)
|
||||||
EVT_MOTION (DBGrid::OnMouseMove)
|
EVT_MOTION (DBGrid::OnMouseMove)
|
||||||
// DBGrid
|
// DBGrid
|
||||||
EVT_GRID_LABEL_LEFT_CLICK( DBGrid::OnLabelLeftClick )
|
EVT_GRID_LABEL_LEFT_CLICK( DBGrid::OnLabelLeftClick )
|
||||||
EVT_GRID_LABEL_RIGHT_CLICK( DBGrid::OnLabelRightClick )
|
EVT_GRID_LABEL_RIGHT_CLICK( DBGrid::OnLabelRightClick )
|
||||||
EVT_GRID_LABEL_LEFT_DCLICK( DBGrid::OnLabelLeftDClick )
|
EVT_GRID_LABEL_LEFT_DCLICK( DBGrid::OnLabelLeftDClick )
|
||||||
EVT_GRID_LABEL_RIGHT_DCLICK( DBGrid::OnLabelRightDClick )
|
EVT_GRID_LABEL_RIGHT_DCLICK( DBGrid::OnLabelRightDClick )
|
||||||
EVT_GRID_CELL_LEFT_CLICK( DBGrid::OnCellLeftClick )
|
EVT_GRID_CELL_LEFT_CLICK( DBGrid::OnCellLeftClick )
|
||||||
EVT_GRID_CELL_RIGHT_CLICK( DBGrid::OnCellRightClick )
|
EVT_GRID_CELL_RIGHT_CLICK( DBGrid::OnCellRightClick )
|
||||||
EVT_GRID_CELL_LEFT_DCLICK( DBGrid::OnCellLeftDClick )
|
EVT_GRID_CELL_LEFT_DCLICK( DBGrid::OnCellLeftDClick )
|
||||||
EVT_GRID_CELL_RIGHT_DCLICK( DBGrid::OnCellRightDClick )
|
EVT_GRID_CELL_RIGHT_DCLICK( DBGrid::OnCellRightDClick )
|
||||||
EVT_GRID_ROW_SIZE( DBGrid::OnRowSize )
|
EVT_GRID_ROW_SIZE( DBGrid::OnRowSize )
|
||||||
// EVT_GRID_COL_SIZE( DBGrid::OnColSize )
|
// EVT_GRID_COL_SIZE( DBGrid::OnColSize )
|
||||||
EVT_GRID_RANGE_SELECT( DBGrid::OnRangeSelected )
|
EVT_GRID_RANGE_SELECT( DBGrid::OnRangeSelected )
|
||||||
EVT_GRID_CELL_CHANGE( DBGrid::OnCellChange )
|
EVT_GRID_CELL_CHANGE( DBGrid::OnCellChange )
|
||||||
EVT_MENU(GRID_EDIT,DBGrid::OnModusEdit)
|
EVT_MENU(GRID_EDIT,DBGrid::OnModusEdit)
|
||||||
EVT_MENU(GRID_BROWSE,DBGrid::OnModusBrowse)
|
EVT_MENU(GRID_BROWSE,DBGrid::OnModusBrowse)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// wxListCtrl(parent, id, pos, size, style)
|
// wxListCtrl(parent, id, pos, size, style)
|
||||||
// wxGrid(parent,-1,wxPoint( 0, 0 ), wxSize( 400, 300 ) );
|
// wxGrid(parent,-1,wxPoint( 0, 0 ), wxSize( 400, 300 ) );
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// DBGrid
|
// DBGrid
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size):
|
// DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size):
|
||||||
// wxGrid(parent, id, pos, size)
|
// wxGrid(parent, id, pos, size)
|
||||||
DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style):
|
DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style):
|
||||||
wxGrid(parent, id, pos, size, style)
|
wxGrid(parent, id, pos, size, style)
|
||||||
{
|
{
|
||||||
//f_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
|
b_EditModus = TRUE;
|
||||||
f_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
//---------------------------------------------------------------------------------------
|
||||||
wxPanel::SetFont(* f_Temp);
|
popupMenu1 = new wxMenu("");
|
||||||
b_EditModus = TRUE;
|
popupMenu1->Append(GRID_EDIT, _("Edit Modus"));
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
popupMenu2 = new wxMenu("");
|
||||||
popupMenu1 = new wxMenu("");
|
popupMenu2->Append(GRID_BROWSE, _("Browse Modus"));
|
||||||
popupMenu1->Append(GRID_EDIT, _("Edit Modus"));
|
|
||||||
popupMenu2 = new wxMenu("");
|
|
||||||
popupMenu2->Append(GRID_BROWSE, _("Browse Modus"));
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
DBGrid::~DBGrid()
|
DBGrid::~DBGrid()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
int DBGrid::OnTableView(wxString Table)
|
int DBGrid::OnTableView(wxString Table)
|
||||||
{
|
{
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int i=0,x,y,z, ValidTable=0;
|
int i=0,x,y,z, ValidTable=0;
|
||||||
wxString Temp0;
|
wxString Temp0;
|
||||||
//SetLabelFont(* f_Temp);
|
//SetLabelFont(* f_Temp);
|
||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
//---------------------------------------------------------------------------
|
SetFont(* pDoc->ft_Doc);
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
ct_BrowserDB = (db_Br+i_Which)->ct_BrowserDB; // Get the DSN Pointer
|
ct_BrowserDB = (db_Br+i_Which)->ct_BrowserDB; // Get the DSN Pointer
|
||||||
//----------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (ct_BrowserDB) // Valid pointer (!= NULL) ?
|
if (ct_BrowserDB) // Valid pointer (!= NULL) ?
|
||||||
{ // Pointer is Valid, use the wxDatabase Information
|
{ // Pointer is Valid, use the wxDatabase Information
|
||||||
for (x=0;x<ct_BrowserDB->numTables;x++) // go through the Tables
|
for (x=0;x<ct_BrowserDB->numTables;x++) // go through the Tables
|
||||||
@@ -135,241 +133,238 @@ int DBGrid::OnTableView(wxString Table)
|
|||||||
} // if (ct_BrowserDB)
|
} // if (ct_BrowserDB)
|
||||||
else
|
else
|
||||||
wxLogMessage(_("\n-E-> DBGrid::OnTableView():: Invalid DSN Pointer : Failed"));
|
wxLogMessage(_("\n-E-> DBGrid::OnTableView():: Invalid DSN Pointer : Failed"));
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
Weiter:
|
Weiter:
|
||||||
SetEditInPlace(b_EditModus); // Activate in-place Editing (FALSE)
|
SetEditInPlace(b_EditModus); // Activate in-place Editing (FALSE)
|
||||||
wxEndBusyCursor();
|
wxEndBusyCursor();
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxLogMessage(_("-I-> DBGrid::OnTableView() - End"));
|
wxLogMessage(_("-I-> DBGrid::OnTableView() - End"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnModusEdit(wxMenu& menu, wxCommandEvent& event)
|
void DBGrid::OnModusEdit(wxMenu& menu, wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
b_EditModus = TRUE; // Needed by PopupMenu
|
b_EditModus = TRUE; // Needed by PopupMenu
|
||||||
SetEditable(FALSE); // Do not Edit with Text Edit Control
|
SetEditable(FALSE); // Do not Edit with Text Edit Control
|
||||||
SetEditInPlace(b_EditModus); // Deactivate in-place Editing
|
SetEditInPlace(b_EditModus); // Deactivate in-place Editing
|
||||||
UpdateDimensions(); // Redraw the Grid
|
UpdateDimensions(); // Redraw the Grid
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnModusBrowse(wxMenu& menu, wxCommandEvent& event)
|
void DBGrid::OnModusBrowse(wxMenu& menu, wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
b_EditModus = FALSE; // Needed by PopupMenu
|
b_EditModus = FALSE; // Needed by PopupMenu
|
||||||
SetEditInPlace(b_EditModus); // Deactivate in-place Editing
|
SetEditInPlace(b_EditModus); // Deactivate in-place Editing
|
||||||
UpdateDimensions(); // Redraw the Grid
|
UpdateDimensions(); // Redraw the Grid
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnMouseMove(wxMouseEvent &event)
|
void DBGrid::OnMouseMove(wxMouseEvent &event)
|
||||||
{
|
{
|
||||||
MousePos = event.GetPosition();
|
MousePos = event.GetPosition();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnLabelLeftClick( wxGridEvent& ev )
|
void DBGrid::OnLabelLeftClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnLabelLeftClick : ";
|
logBuf = "DBGrid::OnLabelLeftClick : ";
|
||||||
if ( ev.GetRow() != -1 )
|
if ( ev.GetRow() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "row label " << ev.GetRow();
|
logBuf << "row label " << ev.GetRow();
|
||||||
}
|
}
|
||||||
else if ( ev.GetCol() != -1 )
|
else if ( ev.GetCol() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "col label " << ev.GetCol();
|
logBuf << "col label " << ev.GetCol();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logBuf << "corner label";
|
logBuf << "corner label";
|
||||||
}
|
}
|
||||||
if ( ev.ShiftDown() )
|
if ( ev.ShiftDown() )
|
||||||
logBuf << " (shift down)";
|
logBuf << " (shift down)";
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnLabelRightClick( wxGridEvent& ev )
|
void DBGrid::OnLabelRightClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
//-------------------
|
//-------------------
|
||||||
if (b_EditModus)
|
if (b_EditModus)
|
||||||
PopupMenu(popupMenu2,MousePos.x,MousePos.y);
|
PopupMenu(popupMenu2,MousePos.x,MousePos.y);
|
||||||
else
|
else
|
||||||
PopupMenu(popupMenu1,MousePos.x,MousePos.y);
|
PopupMenu(popupMenu1,MousePos.x,MousePos.y);
|
||||||
//-------------------
|
//-------------------
|
||||||
logBuf = "DBGrid::OnLabelRightClick : ";
|
logBuf = "DBGrid::OnLabelRightClick : ";
|
||||||
if ( ev.GetRow() != -1 )
|
if ( ev.GetRow() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "row label " << ev.GetRow();
|
logBuf << "row label " << ev.GetRow();
|
||||||
}
|
}
|
||||||
else if ( ev.GetCol() != -1 )
|
else if ( ev.GetCol() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "col label " << ev.GetCol();
|
logBuf << "col label " << ev.GetCol();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logBuf << "corner label";
|
logBuf << "corner label";
|
||||||
}
|
}
|
||||||
if ( ev.ShiftDown() )
|
if ( ev.ShiftDown() )
|
||||||
logBuf << " (shift down)";
|
logBuf << " (shift down)";
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnLabelLeftDClick( wxGridEvent& ev )
|
void DBGrid::OnLabelLeftDClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnLabelLeftDClick : ";
|
logBuf = "DBGrid::OnLabelLeftDClick : ";
|
||||||
if ( ev.GetRow() != -1 )
|
if ( ev.GetRow() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "row label " << ev.GetRow();
|
logBuf << "row label " << ev.GetRow();
|
||||||
}
|
}
|
||||||
else if ( ev.GetCol() != -1 )
|
else if ( ev.GetCol() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "col label " << ev.GetCol();
|
logBuf << "col label " << ev.GetCol();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logBuf << "corner label";
|
logBuf << "corner label";
|
||||||
}
|
}
|
||||||
if ( ev.ShiftDown() )
|
if ( ev.ShiftDown() )
|
||||||
logBuf << " (shift down)";
|
logBuf << " (shift down)";
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnLabelRightDClick( wxGridEvent& ev )
|
void DBGrid::OnLabelRightDClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnLabelRightDClick : ";
|
logBuf = "DBGrid::OnLabelRightDClick : ";
|
||||||
if ( ev.GetRow() != -1 )
|
if ( ev.GetRow() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "row label " << ev.GetRow();
|
logBuf << "row label " << ev.GetRow();
|
||||||
}
|
}
|
||||||
else if ( ev.GetCol() != -1 )
|
else if ( ev.GetCol() != -1 )
|
||||||
{
|
{
|
||||||
logBuf << "col label " << ev.GetCol();
|
logBuf << "col label " << ev.GetCol();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logBuf << "corner label";
|
logBuf << "corner label";
|
||||||
}
|
}
|
||||||
if ( ev.ShiftDown() )
|
if ( ev.ShiftDown() )
|
||||||
logBuf << " (shift down)";
|
logBuf << " (shift down)";
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnCellLeftClick( wxGridEvent& ev )
|
void DBGrid::OnCellLeftClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnCellLeftClick : ";
|
logBuf = "DBGrid::OnCellLeftClick : ";
|
||||||
logBuf << "Cell at row " << ev.GetRow()
|
logBuf << "Cell at row " << ev.GetRow()
|
||||||
<< " col " << ev.GetCol();
|
<< " col " << ev.GetCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxMessageBox(logBuf);
|
// wxMessageBox(logBuf);
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
// you must call event skip if you want default grid processing
|
// you must call event skip if you want default grid processing
|
||||||
// (cell highlighting etc.)
|
// (cell highlighting etc.)
|
||||||
//
|
//
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnCellRightClick( wxGridEvent& ev )
|
void DBGrid::OnCellRightClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnCellRightClick : ";
|
logBuf = "DBGrid::OnCellRightClick : ";
|
||||||
logBuf << "Cell at row " << ev.GetRow()
|
logBuf << "Cell at row " << ev.GetRow()
|
||||||
<< " col " << ev.GetCol();
|
<< " col " << ev.GetCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxMessageBox(logBuf);
|
// wxMessageBox(logBuf);
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
// you must call event skip if you want default grid processing
|
// you must call event skip if you want default grid processing
|
||||||
// (cell highlighting etc.)
|
// (cell highlighting etc.)
|
||||||
//
|
//
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnCellLeftDClick( wxGridEvent& ev )
|
void DBGrid::OnCellLeftDClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnCellLeftDClick : ";
|
logBuf = "DBGrid::OnCellLeftDClick : ";
|
||||||
logBuf << "Cell at row " << ev.GetRow()
|
logBuf << "Cell at row " << ev.GetRow()
|
||||||
<< " col " << ev.GetCol();
|
<< " col " << ev.GetCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxMessageBox(logBuf);
|
// wxMessageBox(logBuf);
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
// you must call event skip if you want default grid processing
|
// you must call event skip if you want default grid processing
|
||||||
// (cell highlighting etc.)
|
// (cell highlighting etc.)
|
||||||
//
|
//
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnCellRightDClick( wxGridEvent& ev )
|
void DBGrid::OnCellRightDClick( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnCellRightDClick : ";
|
logBuf = "DBGrid::OnCellRightDClick : ";
|
||||||
logBuf << "Cell at row " << ev.GetRow()
|
logBuf << "Cell at row " << ev.GetRow()
|
||||||
<< " col " << ev.GetCol();
|
<< " col " << ev.GetCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxMessageBox(logBuf);
|
// wxMessageBox(logBuf);
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
// you must call event skip if you want default grid processing
|
// you must call event skip if you want default grid processing
|
||||||
// (cell highlighting etc.)
|
// (cell highlighting etc.)
|
||||||
//
|
//
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnCellChange( wxGridEvent& ev )
|
void DBGrid::OnCellChange( wxGridEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnCellChange : ";
|
logBuf = "DBGrid::OnCellChange : ";
|
||||||
logBuf << "Cell at row " << ev.GetRow()
|
logBuf << "Cell at row " << ev.GetRow()
|
||||||
<< " col " << ev.GetCol();
|
<< " col " << ev.GetCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxMessageBox(logBuf);
|
// wxMessageBox(logBuf);
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
// you must call event skip if you want default grid processing
|
// you must call event skip if you want default grid processing
|
||||||
// (cell highlighting etc.)
|
// (cell highlighting etc.)
|
||||||
//
|
//
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnRowSize( wxGridSizeEvent& ev )
|
void DBGrid::OnRowSize( wxGridSizeEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnRowSize : ";
|
logBuf = "DBGrid::OnRowSize : ";
|
||||||
logBuf << "Resized row " << ev.GetRowOrCol();
|
logBuf << "Resized row " << ev.GetRowOrCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
ev.Skip();
|
ev.Skip();
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnColSize( wxGridSizeEvent& ev )
|
void DBGrid::OnColSize( wxGridSizeEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnColSize : ";
|
logBuf = "DBGrid::OnColSize : ";
|
||||||
logBuf << "Resized col " << ev.GetRowOrCol();
|
logBuf << "Resized col " << ev.GetRowOrCol();
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
logBuf += "\n";
|
logBuf += "\n";
|
||||||
wxLogMessage(logBuf.c_str());
|
wxLogMessage(logBuf.c_str());
|
||||||
|
ev.Skip();
|
||||||
ev.Skip();
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBGrid::OnRangeSelected( wxGridRangeSelectEvent& ev )
|
void DBGrid::OnRangeSelected( wxGridRangeSelectEvent& ev )
|
||||||
{
|
{
|
||||||
logBuf = "DBGrid::OnRangeSelected : ";
|
logBuf = "DBGrid::OnRangeSelected : ";
|
||||||
logBuf << "Selected cells from row " << ev.GetTopRow()
|
logBuf << "Selected cells from row " << ev.GetTopRow()
|
||||||
<< " col " << ev.GetLeftCol()
|
<< " col " << ev.GetLeftCol()
|
||||||
<< " to row " << ev.GetBottomRow()
|
<< " to row " << ev.GetBottomRow()
|
||||||
<< " col " << ev.GetRightCol();
|
<< " col " << ev.GetRightCol();
|
||||||
|
logBuf += "\n";
|
||||||
logBuf += "\n";
|
// wxLogMessage( "%s", logBuf.c_str() );
|
||||||
// wxLogMessage( "%s", logBuf.c_str() );
|
wxLogMessage(logBuf.c_str());
|
||||||
wxLogMessage(logBuf.c_str());
|
ev.Skip();
|
||||||
|
|
||||||
ev.Skip();
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,41 +1,39 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DBGrid.h
|
// Name: DBGrid.h
|
||||||
// Purpose: DBGrid
|
// Purpose: shows seleted Table in a Grid
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
// Modified by: 20000126.mj10777
|
// Modified by: 20000126.mj10777
|
||||||
// Created:
|
// Created:
|
||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#if !defined(wxUSE_NEW_GRID) || !(wxUSE_NEW_GRID)
|
#if !defined(wxUSE_NEW_GRID) || !(wxUSE_NEW_GRID)
|
||||||
#error "DBGrid requires the new wxGrid class"
|
#error "DBGrid requires the new wxGrid class"
|
||||||
#endif
|
#endif
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
class mjDoc;
|
class mjDoc;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class DBGrid: public wxGrid
|
class DBGrid: public wxGrid
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style);
|
DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style);
|
||||||
virtual ~DBGrid();
|
virtual ~DBGrid();
|
||||||
//-------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int i_TabArt; // Tab = 0 ; Page = 1;
|
int i_TabArt; // Tab = 0 ; Page = 1;
|
||||||
int i_ViewNr; // View Nummer in Tab / Page
|
int i_ViewNr; // View Nummer in Tab / Page
|
||||||
int i_Which; // Which View, Database is this/using
|
int i_Which; // Which View, Database is this/using
|
||||||
//-------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxFont* f_Temp;
|
|
||||||
mjDoc* pDoc;
|
mjDoc* pDoc;
|
||||||
wxDbInf* ct_BrowserDB;
|
wxDbInf* ct_BrowserDB;
|
||||||
BrowserDB* db_Br;
|
BrowserDB* db_Br;
|
||||||
wxMenu *popupMenu1; // OnDBClass
|
wxMenu *popupMenu1; // OnDBClass
|
||||||
wxMenu *popupMenu2; // OnDBGrid & OnTableclass
|
wxMenu *popupMenu2; // OnDBGrid & OnTableclass
|
||||||
bool b_EditModus;
|
bool b_EditModus;
|
||||||
//-------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxString logBuf,Temp0;
|
wxString logBuf,Temp0;
|
||||||
wxPoint MousePos;
|
wxPoint MousePos;
|
||||||
//-------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void OnModusEdit(wxMenu& menu, wxCommandEvent& event);
|
void OnModusEdit(wxMenu& menu, wxCommandEvent& event);
|
||||||
void OnModusBrowse(wxMenu& menu, wxCommandEvent& event);
|
void OnModusBrowse(wxMenu& menu, wxCommandEvent& event);
|
||||||
void OnMouseMove(wxMouseEvent& event);
|
void OnMouseMove(wxMouseEvent& event);
|
||||||
@@ -52,12 +50,12 @@ class DBGrid: public wxGrid
|
|||||||
void OnColSize( wxGridSizeEvent& );
|
void OnColSize( wxGridSizeEvent& );
|
||||||
void OnRangeSelected( wxGridRangeSelectEvent& );
|
void OnRangeSelected( wxGridRangeSelectEvent& );
|
||||||
void OnCellChange( wxGridEvent& );
|
void OnCellChange( wxGridEvent& );
|
||||||
//-------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#define GRID_01_BEGIN 1200
|
#define GRID_01_BEGIN 1200
|
||||||
#define GRID_BROWSE 1201
|
#define GRID_BROWSE 1201
|
||||||
#define GRID_EDIT 1202
|
#define GRID_EDIT 1202
|
||||||
#define GRID_01_END 1203
|
#define GRID_01_END 1203
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,124 +1,116 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DBTree.h
|
// Name: DBTree.cpp/.h
|
||||||
// Purpose: Programm Control with a Tree
|
// Purpose: Tree with Table and Views, branches show Field information
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 19991129
|
// Created: 19991129
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #includes that every .cpp needs --- 19990807.mj10777 ---
|
//-- all #includes that every .cpp needs --- 19990807.mj10777 ----------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#include "std.h" // sorgsam Pflegen !
|
#include "std.h" // sorgsam Pflegen !
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- Global functions -------------------------------------------------------
|
//-- Global functions --------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
static inline const char *bool2String(bool b)
|
static inline const char *bool2String(bool b)
|
||||||
{
|
{
|
||||||
return b ? "" : "not ";
|
return b ? "" : "not ";
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BEGIN_EVENT_TABLE(DBTree, wxTreeCtrl)
|
BEGIN_EVENT_TABLE(DBTree, wxTreeCtrl)
|
||||||
EVT_MOTION (DBTree::OnMouseMove)
|
EVT_MOTION (DBTree::OnMouseMove)
|
||||||
EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
|
EVT_TREE_SEL_CHANGED(TREE_CTRL_DB, DBTree::OnSelChanged)
|
||||||
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
|
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_DB,DBTree::OnRightSelect)
|
||||||
EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
|
EVT_MENU(DATA_SHOW,DBTree::OnDBGrid)
|
||||||
EVT_MENU(DATA_DB,DBTree::OnDBClass)
|
EVT_MENU(DATA_DB,DBTree::OnDBClass)
|
||||||
EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
|
EVT_MENU(DATA_TABLE,DBTree::OnTableClass)
|
||||||
EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
|
EVT_MENU(DATA_TABLE_ALL,DBTree::OnTableClassAll)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// DBTree implementation
|
// DBTree implementation
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
IMPLEMENT_DYNAMIC_CLASS(DBTree, wxTreeCtrl)
|
IMPLEMENT_DYNAMIC_CLASS(DBTree, wxTreeCtrl)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
DBTree::DBTree(wxWindow *parent) : wxTreeCtrl(parent)
|
DBTree::DBTree(wxWindow *parent) : wxTreeCtrl(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
DBTree::DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
|
DBTree::DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
|
||||||
: wxTreeCtrl(parent, id, pos, size, style)
|
: wxTreeCtrl(parent, id, pos, size, style)
|
||||||
{
|
{
|
||||||
//wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
|
// Make an image list containing small icons
|
||||||
wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
p_imageListNormal = new wxImageList(16, 16, TRUE);
|
||||||
SetFont(* ft_Temp);
|
// 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__)
|
#if !defined(__WXMSW__)
|
||||||
#include "bitmaps/logo.xpm"
|
#include "bitmaps/logo.xpm"
|
||||||
#include "bitmaps/dsnclose.xpm"
|
#include "bitmaps/dsnclose.xpm"
|
||||||
#include "bitmaps/dsnopen.xpm"
|
#include "bitmaps/dsnopen.xpm"
|
||||||
#include "bitmaps/tab.xpm"
|
#include "bitmaps/tab.xpm"
|
||||||
#include "bitmaps/key.xpm"
|
#include "bitmaps/view.xpm"
|
||||||
#include "bitmaps/keyf.xpm"
|
#include "bitmaps/col.xpm"
|
||||||
#include "bitmaps/d_open.xpm"
|
#include "bitmaps/key.xpm"
|
||||||
#include "bitmaps/d_closed.xpm"
|
#include "bitmaps/keyf.xpm"
|
||||||
#include "bitmaps/col.xpm"
|
#include "bitmaps/d_open.xpm"
|
||||||
|
#include "bitmaps/d_closed.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
p_imageListNormal->Add(wxICON(aLogo));
|
||||||
p_imageListNormal->Add(wxICON(Logo));
|
p_imageListNormal->Add(wxICON(DsnClosed));
|
||||||
p_imageListNormal->Add(wxICON(DsnClosed));
|
p_imageListNormal->Add(wxICON(DsnOpen));
|
||||||
p_imageListNormal->Add(wxICON(DsnOpen));
|
p_imageListNormal->Add(wxICON(TAB));
|
||||||
p_imageListNormal->Add(wxICON(TAB));
|
p_imageListNormal->Add(wxICON(VIEW));
|
||||||
p_imageListNormal->Add(wxICON(COL));
|
p_imageListNormal->Add(wxICON(COL));
|
||||||
p_imageListNormal->Add(wxICON(KEY));
|
p_imageListNormal->Add(wxICON(KEY));
|
||||||
p_imageListNormal->Add(wxICON(KEYF));
|
p_imageListNormal->Add(wxICON(KEYF));
|
||||||
p_imageListNormal->Add(wxICON(DocOpen));
|
p_imageListNormal->Add(wxICON(DocOpen));
|
||||||
p_imageListNormal->Add(wxICON(DocOpen));
|
p_imageListNormal->Add(wxICON(DocOpen));
|
||||||
|
SetImageList(p_imageListNormal);
|
||||||
|
ct_BrowserDB = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SetImageList(p_imageListNormal);
|
|
||||||
ct_BrowserDB = NULL;
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
DBTree::~DBTree()
|
DBTree::~DBTree()
|
||||||
{
|
{
|
||||||
// wxLogMessage("DBTree::~DBTree() - Vor OnCloseDB()");
|
// wxLogMessage("DBTree::~DBTree() - Vor OnCloseDB()");
|
||||||
(pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
|
(pDoc->db_Br+i_Which)->OnCloseDB(FALSE);
|
||||||
// wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
|
// wxLogMessage("DBTree::~DBTree() - Nach OnCloseDB()");
|
||||||
(pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
|
(pDoc->db_Br+i_Which)->db_BrowserDB = NULL;
|
||||||
(pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
|
(pDoc->db_Br+i_Which)->ct_BrowserDB = NULL;
|
||||||
(pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
|
(pDoc->db_Br+i_Which)->cl_BrowserDB = NULL;
|
||||||
delete ct_BrowserDB;
|
delete ct_BrowserDB;
|
||||||
delete p_imageListNormal;
|
delete p_imageListNormal;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#undef TREE_EVENT_HANDLER
|
#undef TREE_EVENT_HANDLER
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
int DBTree::OnPopulate()
|
int DBTree::OnPopulate()
|
||||||
{
|
{
|
||||||
wxTreeItemId Root, Folder, Docu, Funkt;
|
wxTreeItemId Root, Folder, Docu, Funkt;
|
||||||
int i,x,y, TableType;
|
int i,x,y, TableType;
|
||||||
wxString SQL_TYPE, DB_TYPE;
|
wxString SQL_TYPE, DB_TYPE;
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
SetFont(* pDoc->ft_Doc);
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
if ((pDoc->db_Br+i_Which)->Initialize(FALSE))
|
if ((pDoc->db_Br+i_Which)->Initialize(FALSE))
|
||||||
{
|
{
|
||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
@@ -215,9 +207,9 @@ int DBTree::OnPopulate()
|
|||||||
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : A valid Pointer could not be created : Failed"));
|
wxLogMessage(_("\n-E-> DBTree::OnPopulate() : A valid Pointer could not be created : Failed"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
Expand(Root);
|
Expand(Root);
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
popupMenu1 = NULL;
|
popupMenu1 = NULL;
|
||||||
popupMenu1 = new wxMenu("");
|
popupMenu1 = new wxMenu("");
|
||||||
popupMenu1->Append(DATA_DB, _("Make wxDB.cpp/h "));
|
popupMenu1->Append(DATA_DB, _("Make wxDB.cpp/h "));
|
||||||
@@ -228,11 +220,10 @@ int DBTree::OnPopulate()
|
|||||||
popupMenu2->Append(DATA_SHOW, _("Show Data"));
|
popupMenu2->Append(DATA_SHOW, _("Show Data"));
|
||||||
popupMenu2->AppendSeparator();
|
popupMenu2->AppendSeparator();
|
||||||
popupMenu2->Append(DATA_TABLE, _("Make wxTable.cpp/h "));
|
popupMenu2->Append(DATA_TABLE, _("Make wxTable.cpp/h "));
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
|
void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -242,163 +233,161 @@ void DBTree::OnSelChanged(wxTreeEvent& WXUNUSED(event))
|
|||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
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++)
|
||||||
{
|
{
|
||||||
int Treffer = 0;
|
if (Temp1 == (pDoc->p_DSN+i)->Dsn)
|
||||||
Temp1.Printf("%s",item->m_desc.c_str());
|
{
|
||||||
//-----------------------------------------------------------------------------------------
|
// pDoc->OnChosenDSN(i);
|
||||||
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() );
|
|
||||||
*/
|
|
||||||
//---------------------------------------------------
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
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))
|
void DBTree::OnRightSelect(wxTreeEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Temp0.Empty();
|
Temp0.Empty();
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
if ( item != NULL )
|
||||||
{
|
{
|
||||||
int Treffer = 0;
|
int Treffer = 0;
|
||||||
Temp1.Printf("%s",item->m_desc.c_str());
|
Temp1.Printf("%s",item->m_desc.c_str());
|
||||||
//-----------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
if (!wxStrcmp("Root",Temp1))
|
if (!wxStrcmp("Root",Temp1))
|
||||||
{
|
{
|
||||||
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
|
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
|
||||||
Treffer++;
|
Treffer++;
|
||||||
}
|
}
|
||||||
for (i=0;i<ct_BrowserDB->numTables;i++)
|
for (i=0;i<ct_BrowserDB->numTables;i++)
|
||||||
{
|
{
|
||||||
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
||||||
if (!wxStrcmp(Temp2,Temp1))
|
if (!wxStrcmp(Temp2,Temp1))
|
||||||
{
|
{
|
||||||
PopupMenu(popupMenu2,TreePos.x,TreePos.y);
|
PopupMenu(popupMenu2,TreePos.x,TreePos.y);
|
||||||
Treffer++;
|
Treffer++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
if (Treffer == 0)
|
if (Treffer == 0)
|
||||||
{
|
{
|
||||||
//---------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
/*
|
/*
|
||||||
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
|
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
|
||||||
"%u children (%u immediately under this item)."),
|
"%u children (%u immediately under this item)."),
|
||||||
item->m_desc.c_str(),
|
item->m_desc.c_str(),
|
||||||
bool2String(IsSelected(itemId)),
|
bool2String(IsSelected(itemId)),
|
||||||
bool2String(IsExpanded(itemId)),
|
bool2String(IsExpanded(itemId)),
|
||||||
bool2String(IsBold(itemId)),
|
bool2String(IsBold(itemId)),
|
||||||
GetChildrenCount(itemId),
|
GetChildrenCount(itemId),
|
||||||
GetChildrenCount(itemId));
|
GetChildrenCount(itemId));
|
||||||
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
|
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
|
||||||
wxLogMessage( "%s", LogBuf.c_str() );
|
wxLogMessage( "%s", LogBuf.c_str() );
|
||||||
*/
|
*/
|
||||||
//---------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnDBGrid(wxMenu& , wxCommandEvent& event)
|
void DBTree::OnDBGrid(wxMenu& , wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
if ( item != NULL )
|
||||||
{
|
{
|
||||||
Temp1.Printf("%s",item->m_desc.c_str());
|
Temp1.Printf("%s",item->m_desc.c_str());
|
||||||
for (i=0;i<ct_BrowserDB->numTables;i++)
|
for (i=0;i<ct_BrowserDB->numTables;i++)
|
||||||
{
|
{
|
||||||
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
||||||
if (!wxStrcmp(Temp2,Temp1))
|
if (!wxStrcmp(Temp2,Temp1))
|
||||||
{
|
{
|
||||||
// Temp0.Printf("(%d) Here is where a GridCtrl for >%s< will be called! ",i,(ct_BrowserDB->pTableInf+i)->tableName);
|
// 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);
|
pDoc->OnChosenTbl(1,(ct_BrowserDB->pTableInf+i)->tableName);
|
||||||
// wxMessageBox(Temp0);
|
// wxMessageBox(Temp0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnDBClass(wxMenu& , wxCommandEvent& event)
|
void DBTree::OnDBClass(wxMenu& , wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
// int i;
|
// int i;
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
if ( item != NULL )
|
||||||
{
|
{
|
||||||
Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
|
Temp0.Printf(_("Here is where a wxDB Class for >%s< will be made! "),s_DSN.c_str());
|
||||||
wxMessageBox(Temp0);
|
wxMessageBox(Temp0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnTableClass(wxMenu& , wxCommandEvent& event)
|
void DBTree::OnTableClass(wxMenu& , wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
if ( item != NULL )
|
||||||
{
|
{
|
||||||
Temp1.Printf("%s",item->m_desc.c_str());
|
Temp1.Printf("%s",item->m_desc.c_str());
|
||||||
for (i=0;i<ct_BrowserDB->numTables;i++)
|
for (i=0;i<ct_BrowserDB->numTables;i++)
|
||||||
{
|
{
|
||||||
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
Temp2.Printf("TN(%s",(ct_BrowserDB->pTableInf+i)->tableName);
|
||||||
if (!wxStrcmp(Temp2,Temp1))
|
if (!wxStrcmp(Temp2,Temp1))
|
||||||
{
|
{
|
||||||
Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
|
Temp0.Printf(_("(%d) Here is where a wxTable Class for >%s< will be made! "),i,(ct_BrowserDB->pTableInf+i)->tableName);
|
||||||
wxMessageBox(Temp0);
|
wxMessageBox(Temp0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnTableClassAll(wxMenu& , wxCommandEvent& event)
|
void DBTree::OnTableClassAll(wxMenu& , wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
// int i;
|
// int i;
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
if ( item != NULL )
|
||||||
{
|
{
|
||||||
Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
|
Temp0.Printf(_("Here is where all wxTable Classes in >%s< will be made! "),s_DSN.c_str());
|
||||||
wxMessageBox(Temp0);
|
wxMessageBox(Temp0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void DBTree::OnMouseMove(wxMouseEvent &event)
|
void DBTree::OnMouseMove(wxMouseEvent &event)
|
||||||
{
|
{
|
||||||
TreePos = event.GetPosition();
|
TreePos = event.GetPosition();
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,25 +1,23 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DBTree.h
|
// Name: DBTree.cpp/.h
|
||||||
// Purpose: Shows ODBC Catalog entries for Databases
|
// Purpose: Tree with Table and Views, branches show Field information
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
// Modified by: 19991129.mj10777
|
// Modified by: 19991129.mj10777
|
||||||
// Created: 19991129
|
// Created: 19991129
|
||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class mjDoc; // Declared in Doc.h file
|
class mjDoc; // Declared in Doc.h file
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class DBTreeData : public wxTreeItemData
|
class DBTreeData : public wxTreeItemData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DBTreeData(const wxString& desc) : m_desc(desc) { }
|
DBTreeData(const wxString& desc) : m_desc(desc) { }
|
||||||
|
|
||||||
void ShowInfo(wxTreeCtrl *tree);
|
void ShowInfo(wxTreeCtrl *tree);
|
||||||
|
wxString m_desc;
|
||||||
wxString m_desc;
|
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class DBTree : public wxTreeCtrl
|
class DBTree : public wxTreeCtrl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -39,14 +37,14 @@ class DBTree : public wxTreeCtrl
|
|||||||
TreeIc_FolderOpen // f_open.ico
|
TreeIc_FolderOpen // f_open.ico
|
||||||
};
|
};
|
||||||
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
DBTree() { }
|
DBTree() { }
|
||||||
DBTree(wxWindow *parent);
|
DBTree(wxWindow *parent);
|
||||||
DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
|
DBTree(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
|
||||||
virtual ~DBTree();
|
virtual ~DBTree();
|
||||||
mjDoc *pDoc;
|
mjDoc *pDoc;
|
||||||
wxDbInf *ct_BrowserDB;
|
wxDbInf *ct_BrowserDB;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
int i_TabArt; // Tab = 0 ; Page = 1;
|
int i_TabArt; // Tab = 0 ; Page = 1;
|
||||||
int i_ViewNr; // View Nummer in Tab / Page
|
int i_ViewNr; // View Nummer in Tab / Page
|
||||||
int i_Which; // Which View, Database is this/using
|
int i_Which; // Which View, Database is this/using
|
||||||
@@ -54,9 +52,9 @@ class DBTree : public wxTreeCtrl
|
|||||||
wxMenu *popupMenu1; // OnDBClass
|
wxMenu *popupMenu1; // OnDBClass
|
||||||
wxMenu *popupMenu2; // OnDBGrid & OnTableclass
|
wxMenu *popupMenu2; // OnDBGrid & OnTableclass
|
||||||
wxPoint TreePos;
|
wxPoint TreePos;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
wxImageList *p_imageListNormal;
|
wxImageList *p_imageListNormal;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
public:
|
public:
|
||||||
int OnPopulate();
|
int OnPopulate();
|
||||||
void OnSelChanged(wxTreeEvent& event);
|
void OnSelChanged(wxTreeEvent& event);
|
||||||
@@ -68,7 +66,7 @@ class DBTree : public wxTreeCtrl
|
|||||||
void OnMouseEvent(wxMouseEvent& event);
|
void OnMouseEvent(wxMouseEvent& event);
|
||||||
void OnMouseMove(wxMouseEvent& event);
|
void OnMouseMove(wxMouseEvent& event);
|
||||||
public:
|
public:
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
|
// NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
|
||||||
// if you want your overloaded OnCompareItems() to be called.
|
// if you want your overloaded OnCompareItems() to be called.
|
||||||
// OTOH, if you don't want it you may omit the next line - this will
|
// 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_DYNAMIC_CLASS(DBTree)
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#define POPUP_01_BEGIN 1100
|
#define POPUP_01_BEGIN 1100
|
||||||
#define DATA_SHOW 1101
|
#define DATA_SHOW 1101
|
||||||
#define DATA_DB 1102
|
#define DATA_DB 1102
|
||||||
#define DATA_TABLE 1103
|
#define DATA_TABLE 1103
|
||||||
#define DATA_TABLE_ALL 1104
|
#define DATA_TABLE_ALL 1104
|
||||||
#define POPUP_01_END 1117
|
#define POPUP_01_END 1117
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DlgUser.h,cpp
|
// Name: DlgUser.h,cpp
|
||||||
// Purpose: Dialog mit Variable Gestaltung durch DlgUser.wxr
|
// Purpose: Dialog mit Variable Gestaltung durch DlgUser.wxr
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
@@ -7,44 +7,36 @@
|
|||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #includes that every .cpp needs ----19990807.mj10777 ---
|
//-- all #includes that every .cpp needs ----19990807.mj10777 ----------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#include "dlguser.h"
|
#include "std.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
||||||
wxDialog(parent, ID_DIALOG_DSN, title)
|
wxDialog(parent, ID_DIALOG_DSN, title)
|
||||||
{
|
{
|
||||||
SetBackgroundColour("wheat");
|
SetBackgroundColour("wheat");
|
||||||
|
|
||||||
wxLayoutConstraints* layout;
|
wxLayoutConstraints* layout;
|
||||||
SetAutoLayout(TRUE);
|
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);
|
|
||||||
|
|
||||||
m_Label1 = new wxStaticText(this, -1, _("User ID:"));
|
m_Label1 = new wxStaticText(this, -1, _("User ID:"));
|
||||||
layout = new wxLayoutConstraints;
|
layout = new wxLayoutConstraints;
|
||||||
@@ -61,9 +53,9 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
|||||||
layout->centreY.SameAs(m_Label1,wxCentreY);
|
layout->centreY.SameAs(m_Label1,wxCentreY);
|
||||||
layout->width.Absolute(200);
|
layout->width.Absolute(200);
|
||||||
layout->height.AsIs();
|
layout->height.AsIs();
|
||||||
m_UserName->SetConstraints(layout);
|
m_UserName->SetConstraints(layout);
|
||||||
|
|
||||||
|
|
||||||
m_Label2 = new wxStaticText(this, -1, _("Password:"));
|
m_Label2 = new wxStaticText(this, -1, _("Password:"));
|
||||||
layout = new wxLayoutConstraints;
|
layout = new wxLayoutConstraints;
|
||||||
layout->left.SameAs(m_Label1, wxLeft);
|
layout->left.SameAs(m_Label1, wxLeft);
|
||||||
@@ -71,7 +63,7 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
|||||||
layout->height.AsIs();
|
layout->height.AsIs();
|
||||||
layout->width.SameAs(m_Label1, wxWidth);
|
layout->width.SameAs(m_Label1, wxWidth);
|
||||||
m_Label2->SetConstraints(layout);
|
m_Label2->SetConstraints(layout);
|
||||||
|
|
||||||
m_Password = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD);
|
m_Password = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD);
|
||||||
layout = new wxLayoutConstraints;
|
layout = new wxLayoutConstraints;
|
||||||
layout->left.SameAs(m_UserName, wxLeft);
|
layout->left.SameAs(m_UserName, wxLeft);
|
||||||
@@ -80,7 +72,7 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
|||||||
layout->centreY.SameAs(m_Label2,wxCentreY);
|
layout->centreY.SameAs(m_Label2,wxCentreY);
|
||||||
layout->height.AsIs();
|
layout->height.AsIs();
|
||||||
m_Password->SetConstraints(layout);
|
m_Password->SetConstraints(layout);
|
||||||
|
|
||||||
m_OK = new wxButton(this, wxID_OK, _("Ok"));
|
m_OK = new wxButton(this, wxID_OK, _("Ok"));
|
||||||
layout = new wxLayoutConstraints;
|
layout = new wxLayoutConstraints;
|
||||||
layout->left.SameAs(this, wxLeft, 10);
|
layout->left.SameAs(this, wxLeft, 10);
|
||||||
@@ -99,45 +91,28 @@ DlgUser::DlgUser(wxWindow *parent, const wxString& title) :
|
|||||||
|
|
||||||
m_OK->SetDefault();
|
m_OK->SetDefault();
|
||||||
m_UserName->SetFocus();
|
m_UserName->SetFocus();
|
||||||
|
|
||||||
|
|
||||||
s_User = "";
|
s_User = "";
|
||||||
s_Password = "";
|
s_Password = "";
|
||||||
|
|
||||||
Layout();
|
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()
|
void DlgUser::OnInit()
|
||||||
{
|
{
|
||||||
wxString Temp; Temp.Printf(_(">>> %s <<< "),s_DSN.c_str());
|
wxString Temp; Temp.Printf(_(">>> %s <<< "),s_DSN.c_str());
|
||||||
SetTitle(Temp);
|
SetTitle(Temp);
|
||||||
|
m_UserName->SetLabel(s_User);
|
||||||
m_UserName->SetLabel(s_User);
|
m_Password->SetLabel(s_Password);
|
||||||
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);
|
||||||
// (void)new wxStaticText(this, -1, Temp, wxPoint(10, 10), wxSize(300, 20),wxALIGN_CENTRE );
|
m_OK->SetFont(* pDoc->ft_Doc); m_Cancel->SetFont(* pDoc->ft_Doc);
|
||||||
// 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();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
BEGIN_EVENT_TABLE(DlgUser, wxDialog)
|
BEGIN_EVENT_TABLE(DlgUser, wxDialog)
|
||||||
EVT_BUTTON(wxID_OK, DlgUser::OnOk)
|
EVT_BUTTON(wxID_OK, DlgUser::OnOk)
|
||||||
EVT_BUTTON(wxID_CANCEL, DlgUser::OnCancel)
|
EVT_BUTTON(wxID_CANCEL, DlgUser::OnCancel)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
void DlgUser::OnOk(wxCommandEvent& WXUNUSED(event) )
|
void DlgUser::OnOk(wxCommandEvent& WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
//canceled = FALSE;
|
//canceled = FALSE;
|
||||||
@@ -145,11 +120,11 @@ void DlgUser::OnOk(wxCommandEvent& WXUNUSED(event) )
|
|||||||
s_Password = m_Password->GetValue();
|
s_Password = m_Password->GetValue();
|
||||||
EndModal(wxID_OK);
|
EndModal(wxID_OK);
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//void DlgUser::OnCancel(wxCommandEvent& WXUNUSED(event) )
|
//void DlgUser::OnCancel(wxCommandEvent& WXUNUSED(event) )
|
||||||
// {
|
// {
|
||||||
// canceled = TRUE;
|
// canceled = TRUE;
|
||||||
// EndModal(wxID_CANCEL);
|
// EndModal(wxID_CANCEL);
|
||||||
// }
|
// }
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: DlgUser.h,cpp
|
// Name: DlgUser.h,cpp
|
||||||
// Purpose: Dialog mit Variable Gestaltung durch DlgUser.wxr
|
// Purpose: Dialog mit Variable Gestaltung durch DlgUser.wxr
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
@@ -7,32 +7,30 @@
|
|||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// DlgUser
|
// DlgUser
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#define ID_DIALOG_DSN 100
|
#define ID_DIALOG_DSN 100
|
||||||
#define ID_DSN 101
|
#define ID_DSN 101
|
||||||
#define ID_USER 102
|
#define ID_USER 102
|
||||||
#define ID_PASSWORD 103
|
#define ID_PASSWORD 103
|
||||||
#define ID_TEXT 104
|
#define ID_TEXT 104
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
class mjDoc;
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
class DlgUser: public wxDialog
|
class DlgUser: public wxDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// bool canceled;
|
|
||||||
wxString s_DSN, s_User, s_Password;
|
wxString s_DSN, s_User, s_Password;
|
||||||
// wxTextCtrl *tc_User, *tc_Password;
|
|
||||||
wxStaticText *m_Label1, *m_Label2;
|
wxStaticText *m_Label1, *m_Label2;
|
||||||
wxTextCtrl *m_UserName, *m_Password;
|
wxTextCtrl *m_UserName, *m_Password;
|
||||||
wxButton *m_OK, *m_Cancel;
|
wxButton *m_OK, *m_Cancel;
|
||||||
|
mjDoc *pDoc;
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
DlgUser(wxWindow *parent, const wxString& title);
|
DlgUser(wxWindow *parent, const wxString& title);
|
||||||
void OnInit();
|
void OnInit();
|
||||||
void OnOk(wxCommandEvent& event);
|
void OnOk(wxCommandEvent& event);
|
||||||
// void OnCancel(wxCommandEvent& event);
|
//---------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: Doc.cpp
|
// Name: Doc.cpp
|
||||||
// Purpose: Holds information for DBBrowser
|
// Purpose: Holds information for DBBrowser - (a do-it-yourself document)
|
||||||
// Author: Mark Johnson, mj10777@gmx.net
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
// Modified by: 19990808.mj10777
|
// Modified by: 19990808.mj10777
|
||||||
// BJO : Bart A.M. JOURQUIN
|
// BJO : Bart A.M. JOURQUIN
|
||||||
@@ -8,324 +8,319 @@
|
|||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//-- all #includes that every .cpp needs ----19990807.mj10777 ----------------
|
||||||
//-- all #includes that every .cpp needs ----19990807.mj10777 ---
|
//----------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
#include "std.h" // sorgsam Pflegen !
|
#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
|
// Global structure for holding ODBC connection information
|
||||||
struct DbStuff DbConnectInf;
|
struct DbStuff DbConnectInf;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
wxConfigBase *p_ProgramCfg; // All Config and Path information
|
wxConfigBase *p_ProgramCfg; // All Config and Path information
|
||||||
wxLogTextCtrl *p_LogBook; // All Log messages
|
wxLogTextCtrl *p_LogBook; // All Log messages
|
||||||
wxString LogBuf; // String for all Logs
|
wxString LogBuf; // String for all Logs
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
mjDoc::mjDoc()
|
mjDoc::mjDoc()
|
||||||
{
|
{
|
||||||
db_Br = NULL;
|
db_Br = NULL;
|
||||||
p_DSN = NULL;
|
p_DSN = NULL;
|
||||||
i_DSN = 0;
|
i_DSN = 0;
|
||||||
p_Splitter = NULL;
|
p_Splitter = NULL;
|
||||||
p_MainFrame = NULL;
|
p_MainFrame = NULL;
|
||||||
p_PgmCtrl = NULL; // Is not active
|
p_PgmCtrl = NULL; // Is not active
|
||||||
p_DBTree = NULL;
|
p_DBTree = NULL;
|
||||||
p_DBGrid = NULL;
|
p_DBGrid = NULL;
|
||||||
p_LogWin = NULL;
|
p_LogWin = NULL;
|
||||||
p_TabArea = NULL;
|
p_TabArea = NULL;
|
||||||
p_PageArea = NULL;
|
p_PageArea = NULL;
|
||||||
i_TabNr = 0;
|
i_TabNr = 0;
|
||||||
i_PageNr = 0;
|
i_PageNr = 0;
|
||||||
|
s_BColour = "WHEAT";
|
||||||
|
ft_Doc = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
mjDoc::~mjDoc()
|
mjDoc::~mjDoc()
|
||||||
{
|
{
|
||||||
// ----------------------------------------------------------
|
// ----------------------------------------------------------
|
||||||
// -E-> The Tree Controls take to long to close : Why ??
|
// -E-> The Tree Controls take to long to close : Why ??
|
||||||
// ----------------------------------------------------------
|
// ----------------------------------------------------------
|
||||||
// wxMessageBox("-I-> end Doc");
|
// wxMessageBox("-I-> end Doc");
|
||||||
p_TabArea->Show(FALSE); // Deactivate the Window
|
p_TabArea->Show(FALSE); // Deactivate the Window
|
||||||
p_PageArea->Show(FALSE); // Deactivate the Window
|
p_PageArea->Show(FALSE); // Deactivate the Window
|
||||||
p_PgmCtrl = NULL;
|
p_PgmCtrl = NULL;
|
||||||
delete p_PgmCtrl;
|
delete p_PgmCtrl;
|
||||||
delete [] p_DSN;
|
delete [] p_DSN;
|
||||||
delete p_DBTree;
|
delete p_DBTree;
|
||||||
p_TabArea = NULL; delete p_TabArea;
|
p_TabArea = NULL; delete p_TabArea;
|
||||||
p_PageArea = NULL; delete p_PageArea;
|
p_PageArea = NULL; delete p_PageArea;
|
||||||
p_Splitter = NULL;
|
p_Splitter = NULL;
|
||||||
delete p_Splitter;
|
delete p_Splitter;
|
||||||
delete [] db_Br;
|
delete [] db_Br;
|
||||||
// wxMessageBox("~mjDoc");
|
// wxMessageBox("~mjDoc");
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool mjDoc::OnNewDocument()
|
bool mjDoc::OnNewDocument()
|
||||||
{
|
{
|
||||||
//-------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (!OnInitView())
|
if (!OnInitView())
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
p_PgmCtrl->OnPopulate();
|
p_PgmCtrl->OnPopulate();
|
||||||
//-------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool mjDoc::OnInitView()
|
bool mjDoc::OnInitView()
|
||||||
{
|
{
|
||||||
Sash = p_ProgramCfg->Read("/MainFrame/Sash", 200);
|
Sash = p_ProgramCfg->Read("/MainFrame/Sash", 200);
|
||||||
// wxMessageBox("OnInitView() - Begin ","-I->mjDoc::OnInitView");
|
// wxMessageBox("OnInitView() - Begin ","-I->mjDoc::OnInitView");
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// create "workplace" window
|
// create "workplace" window
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_TabArea = new wxTabbedWindow(); // Init the Pointer
|
p_TabArea = new wxTabbedWindow(); // Init the Pointer
|
||||||
p_TabArea->Create(p_Splitter, -1);
|
p_TabArea->Create(p_Splitter, -1);
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_PgmCtrl = new PgmCtrl(p_TabArea, TREE_CTRL_PGM,wxDefaultPosition, wxDefaultSize,
|
p_PgmCtrl = new PgmCtrl(p_TabArea, TREE_CTRL_PGM,wxDefaultPosition, wxDefaultSize,
|
||||||
wxTR_HAS_BUTTONS | wxSUNKEN_BORDER);
|
wxTR_HAS_BUTTONS | wxSUNKEN_BORDER);
|
||||||
p_PgmCtrl->i_TabArt = 0; // 0 = Tab ; 1 = Page
|
p_PgmCtrl->i_TabArt = 0; // 0 = Tab ; 1 = Page
|
||||||
p_PgmCtrl->i_ViewNr = p_TabArea->GetTabCount()-1;
|
p_PgmCtrl->i_ViewNr = p_TabArea->GetTabCount()-1;
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxBitmap *p_FolderClose = new wxBitmap("PgmCtrl"); //, wxBITMAP_TYPE_BMP_RESOURCE); // BJO20000115
|
wxBitmap *p_FolderClose = new wxBitmap("PgmCtrl"); //, wxBITMAP_TYPE_BMP_RESOURCE); // BJO20000115
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_TabArea->AddTab(p_PgmCtrl,"PgmCtrl",p_FolderClose);
|
p_TabArea->AddTab(p_PgmCtrl,"PgmCtrl",p_FolderClose);
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// now create "output" window
|
// now create "output" window
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_PageArea = new wxPaggedWindow(); // Init the Pointer
|
p_PageArea = new wxPaggedWindow(); // Init the Pointer
|
||||||
p_PageArea->Create(p_Splitter, -1);
|
p_PageArea->Create(p_Splitter, -1);
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_LogWin = new wxTextCtrl(p_PageArea,-1,wxEmptyString,
|
p_LogWin = new wxTextCtrl(p_PageArea,-1,wxEmptyString,
|
||||||
wxDefaultPosition, wxDefaultSize,wxTE_MULTILINE );
|
wxDefaultPosition, wxDefaultSize,wxTE_MULTILINE );
|
||||||
//wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
|
//wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
|
||||||
wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
||||||
p_LogWin->SetFont(* ft_Temp);
|
p_LogWin->SetFont(* ft_Temp);
|
||||||
// Don't forget ! This is always : i_TabArt = 0 ; i_ViewNr = 1;
|
// 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 = new wxLogTextCtrl(p_LogWin); // make p_LogWin the LogBook
|
||||||
p_LogBook->SetActiveTarget(p_LogBook);
|
p_LogBook->SetActiveTarget(p_LogBook);
|
||||||
p_LogBook->SetTimestamp( NULL );
|
p_LogBook->SetTimestamp( NULL );
|
||||||
//------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_PageArea->AddTab(p_LogWin,_("LogBook"), "what is this?" );
|
p_PageArea->AddTab(p_LogWin,_("LogBook"), "what is this?" );
|
||||||
i_TabNr = p_TabArea->GetTabCount()-1; // Add one when a new AddTab is done;
|
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;
|
i_PageNr = p_PageArea->GetTabCount()-1; // Add one when a new AddTab is done;
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_PgmCtrl->pDoc = this;
|
p_PgmCtrl->pDoc = this;
|
||||||
p_TabArea->SetActiveTab(i_PageNr);
|
p_TabArea->SetActiveTab(i_PageNr);
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
p_Splitter->Initialize(p_TabArea);
|
p_Splitter->Initialize(p_TabArea);
|
||||||
p_Splitter->SplitHorizontally(p_TabArea,p_PageArea,Sash);
|
p_Splitter->SplitHorizontally(p_TabArea,p_PageArea,Sash);
|
||||||
//--------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
if (!OnInitODBC())
|
||||||
if (!OnInitODBC())
|
return FALSE;
|
||||||
return FALSE;
|
//---------------------------------------------------------------------------------------
|
||||||
//--------------------------------------------------------------------------
|
Temp0.Printf("-I-> mjDoc::OnInitView() - End - %d DSN's found",i_DSN);
|
||||||
Temp0.Printf("-I-> mjDoc::OnInitView() - End - %d DSN's found",i_DSN);
|
p_MainFrame->SetStatusText(Temp0, 0);
|
||||||
p_MainFrame->SetStatusText(Temp0, 0);
|
wxLogMessage(Temp0);
|
||||||
wxLogMessage(Temp0);
|
return TRUE;
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool mjDoc::OnInitODBC()
|
bool mjDoc::OnInitODBC()
|
||||||
{
|
{
|
||||||
char Dsn[SQL_MAX_DSN_LENGTH + 1];
|
char Dsn[SQL_MAX_DSN_LENGTH + 1];
|
||||||
char DsDesc[255]; // BJO20002501 instead of 512
|
char DsDesc[255]; // BJO20002501 instead of 512
|
||||||
Temp0 = "";
|
Temp0 = "";
|
||||||
i_DSN = 0; // Counter
|
i_DSN = 0; // Counter
|
||||||
int i = 0;
|
int i = 0;
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// Initialize the ODBC Environment for Database Operations
|
// Initialize the ODBC Environment for Database Operations
|
||||||
|
|
||||||
if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS)
|
if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
const char sep = 3; // separator character used in string between DSN ans DsDesc
|
||||||
const char sep = 3; // separator character used in string between DSN ans DsDesc
|
wxStringList s_SortDSNList, s_SortDsDescList;
|
||||||
wxStringList s_SortDSNList, s_SortDsDescList;
|
// BJO-20000127
|
||||||
// BJO-20000127
|
// In order to have same sort result on both Dsn and DsDesc, create a 'keyed' string.
|
||||||
// In order to have same sort result on both Dsn and DsDesc, create a 'keyed' string.
|
// The key will be removed after sorting
|
||||||
// The key will be removed after sorting
|
wxString KeyString;
|
||||||
wxString KeyString;
|
//---------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
while(GetDataSource(DbConnectInf.Henv, Dsn, sizeof(Dsn), DsDesc, sizeof(DsDesc)))
|
||||||
while(GetDataSource(DbConnectInf.Henv, Dsn, sizeof(Dsn), DsDesc, sizeof(DsDesc)))
|
{
|
||||||
{
|
i_DSN++; // How many Dsn have we ?
|
||||||
i_DSN++; // How many Dsn have we ?
|
KeyString.Printf("%s%c%s",Dsn, sep, DsDesc);
|
||||||
KeyString.Printf("%s%c%s",Dsn, sep, DsDesc);
|
s_SortDSNList.Add(Dsn);
|
||||||
s_SortDSNList.Add(Dsn);
|
s_SortDsDescList.Add(KeyString);
|
||||||
s_SortDsDescList.Add(KeyString);
|
}
|
||||||
}
|
s_SortDSNList.Sort(); //BJO
|
||||||
s_SortDSNList.Sort(); //BJO
|
s_SortDsDescList.Sort(); //BJO
|
||||||
s_SortDsDescList.Sort(); //BJO
|
|
||||||
|
char ** s_SortDSN = s_SortDSNList.ListToArray(); //BJO
|
||||||
char ** s_SortDSN = s_SortDSNList.ListToArray(); //BJO
|
char ** s_SortDsDesc = s_SortDsDescList.ListToArray(); //BJO
|
||||||
char ** s_SortDsDesc = s_SortDsDescList.ListToArray(); //BJO
|
//---------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
// Allocate n ODBC-DSN objects to hold the information
|
||||||
// Allocate n ODBC-DSN objects to hold the information
|
p_DSN = new DSN[i_DSN]; //BJO
|
||||||
p_DSN = new DSN[i_DSN]; //BJO
|
for (i=0;i<i_DSN;i++)
|
||||||
for (i=0;i<i_DSN;i++)
|
{
|
||||||
{
|
KeyString = s_SortDsDesc[i];
|
||||||
KeyString = s_SortDsDesc[i];
|
KeyString = KeyString.AfterFirst(sep);
|
||||||
KeyString = KeyString.AfterFirst(sep);
|
strcpy(s_SortDsDesc[i],KeyString.c_str());
|
||||||
strcpy(s_SortDsDesc[i],KeyString.c_str());
|
(p_DSN+i)->Dsn = s_SortDSN[i];
|
||||||
(p_DSN+i)->Dsn = s_SortDSN[i];
|
(p_DSN+i)->Drv = s_SortDsDesc[i];
|
||||||
(p_DSN+i)->Drv = s_SortDsDesc[i];
|
(p_DSN+i)->Usr = "";
|
||||||
(p_DSN+i)->Usr = "";
|
(p_DSN+i)->Pas = "";
|
||||||
(p_DSN+i)->Pas = "";
|
Temp0.Printf("%02d) Dsn(%s) DsDesc(%s)",i,(p_DSN+i)->Dsn.c_str(),(p_DSN+i)->Drv.c_str());
|
||||||
Temp0.Printf("%02d) Dsn(%s) DsDesc(%s)",i,(p_DSN+i)->Dsn.c_str(),(p_DSN+i)->Drv.c_str());
|
wxLogMessage(Temp0);
|
||||||
wxLogMessage(Temp0);
|
}
|
||||||
}
|
i = 0;
|
||||||
i = 0;
|
//---------------------------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
// Allocate n wxDatabase objects to hold the column information
|
||||||
// Allocate n wxDatabase objects to hold the column information
|
db_Br = new BrowserDB[i_DSN];
|
||||||
db_Br = new BrowserDB[i_DSN];
|
for (i=0;i<i_DSN;i++)
|
||||||
for (i=0;i<i_DSN;i++)
|
{
|
||||||
{
|
(db_Br+i)->p_LogWindow = p_LogWin;
|
||||||
(db_Br+i)->p_LogWindow = p_LogWin;
|
(db_Br+i)->ODBCSource = (p_DSN+i)->Dsn;
|
||||||
(db_Br+i)->ODBCSource = (p_DSN+i)->Dsn;
|
(db_Br+i)->UserName = (p_DSN+i)->Usr;
|
||||||
(db_Br+i)->UserName = (p_DSN+i)->Usr;
|
(db_Br+i)->Password = (p_DSN+i)->Pas;
|
||||||
(db_Br+i)->Password = (p_DSN+i)->Pas;
|
(db_Br+i)->pDoc = this;
|
||||||
(db_Br+i)->pDoc = this;
|
(db_Br+i)->i_Which = i;
|
||||||
(db_Br+i)->i_Which = i;
|
}
|
||||||
}
|
if (SQLFreeEnv(&DbConnectInf.Henv) != SQL_SUCCESS) // BJO20000125
|
||||||
|
{
|
||||||
if (SQLFreeEnv(&DbConnectInf.Henv) != SQL_SUCCESS) // BJO20000125
|
// Error freeing environment handle
|
||||||
{
|
}
|
||||||
// Error freeing environment handle
|
delete [] s_SortDSN;
|
||||||
}
|
delete [] s_SortDsDesc;
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
delete [] s_SortDSN;
|
if (!i_DSN)
|
||||||
delete [] s_SortDsDesc;
|
{
|
||||||
|
wxMessageBox(_("No Dataset names found in ODBC!\n" \
|
||||||
//---------------------------------------------------------------------------
|
" Program will exit!\n\n" \
|
||||||
if (!i_DSN)
|
" Ciao"),"-E-> Fatal situation");
|
||||||
{
|
return FALSE;
|
||||||
wxMessageBox(_("No Dataset names found in ODBC!\n" \
|
}
|
||||||
" Program will exit!\n\n" \
|
//---------------------------------------------------------------------------------------
|
||||||
" Ciao"),"-E-> Fatal situation");
|
return TRUE;
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
bool mjDoc::OnChosenDSN(int Which)
|
bool mjDoc::OnChosenDSN(int Which)
|
||||||
{
|
{
|
||||||
// wxLogMessage("OnChosenDSN(%d) - Begin",Which);
|
// wxLogMessage("OnChosenDSN(%d) - Begin",Which);
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
if (p_DBTree != NULL)
|
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,"");
|
|
||||||
}
|
|
||||||
//-------------------------
|
|
||||||
p_TabArea->Show(FALSE); // Deactivate the Window
|
p_TabArea->Show(FALSE); // Deactivate the Window
|
||||||
p_DBTree = new DBTree(p_TabArea, TREE_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
p_TabArea->RemoveTab(p_DBTree->i_ViewNr);
|
||||||
wxTR_HAS_BUTTONS | wxSUNKEN_BORDER);
|
p_TabArea->Show(TRUE); // Activate the Window
|
||||||
p_TabArea->AddTab(p_DBTree,(p_DSN+Which)->Dsn," ? ");
|
OnChosenTbl(77,"");
|
||||||
p_DBTree->i_ViewNr = p_TabArea->GetTabCount()-1;
|
}
|
||||||
p_TabArea->Show(TRUE); // Deactivate the Window
|
//-------------------------
|
||||||
p_DBTree->i_Which = Which;
|
p_TabArea->Show(FALSE); // Deactivate the Window
|
||||||
p_DBTree->s_DSN = (p_DSN+Which)->Dsn;
|
p_DBTree = new DBTree(p_TabArea, TREE_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
||||||
p_DBTree->i_TabArt = 0;
|
wxTR_HAS_BUTTONS | wxSUNKEN_BORDER);
|
||||||
p_DBTree->pDoc = this;
|
p_TabArea->AddTab(p_DBTree,(p_DSN+Which)->Dsn," ? ");
|
||||||
p_DBTree->OnPopulate();
|
p_DBTree->i_ViewNr = p_TabArea->GetTabCount()-1;
|
||||||
p_TabArea->SetActiveTab(p_DBTree->i_ViewNr);
|
p_TabArea->Show(TRUE); // Deactivate the Window
|
||||||
//---------------------------------------------------------------------------
|
p_DBTree->i_Which = Which;
|
||||||
// wxLogMessage("OnChosenDSN(%d) - End",Which);
|
p_DBTree->s_DSN = (p_DSN+Which)->Dsn;
|
||||||
return TRUE;
|
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)
|
bool mjDoc::OnChosenTbl(int Tab,wxString Table)
|
||||||
{
|
{
|
||||||
// wxLogMessage("OnChosenTbl(%d,%s)",Tab,Table.c_str());
|
// wxLogMessage("OnChosenTbl(%d,%s)",Tab,Table.c_str());
|
||||||
//-------------------------
|
//-------------------------
|
||||||
if (p_DBGrid != NULL)
|
if (p_DBGrid != NULL)
|
||||||
{
|
{
|
||||||
if (p_DBGrid->i_TabArt == 0)
|
if (p_DBGrid->i_TabArt == 0)
|
||||||
{
|
{
|
||||||
p_TabArea->Show(FALSE); // Deactivate the Window
|
p_TabArea->Show(FALSE); // Deactivate the Window
|
||||||
p_TabArea->RemoveTab(p_DBGrid->i_ViewNr);
|
p_TabArea->RemoveTab(p_DBGrid->i_ViewNr);
|
||||||
p_TabArea->Show(TRUE); // Activate the Window
|
p_TabArea->Show(TRUE); // Activate the Window
|
||||||
}
|
}
|
||||||
if (p_DBGrid->i_TabArt == 1)
|
if (p_DBGrid->i_TabArt == 1)
|
||||||
{
|
{
|
||||||
p_PageArea->Show(FALSE); // Deactivate the Window
|
p_PageArea->Show(FALSE); // Deactivate the Window
|
||||||
p_PageArea->RemoveTab(p_DBGrid->i_ViewNr);
|
p_PageArea->RemoveTab(p_DBGrid->i_ViewNr);
|
||||||
p_PageArea->Show(TRUE); // Activate the Window
|
p_PageArea->Show(TRUE); // Activate the Window
|
||||||
}
|
}
|
||||||
p_DBGrid = NULL;
|
p_DBGrid = NULL;
|
||||||
delete p_DBGrid;
|
delete p_DBGrid;
|
||||||
}
|
}
|
||||||
if (Tab == 77) // Delete only
|
if (Tab == 77) // Delete only
|
||||||
return TRUE;
|
return TRUE;
|
||||||
//-------------------------
|
//-------------------------
|
||||||
if (Tab == 0) // Tabview
|
if (Tab == 0) // Tabview
|
||||||
{
|
{
|
||||||
p_TabArea->Show(FALSE); // Deactivate the Window
|
p_TabArea->Show(FALSE); // Deactivate the Window
|
||||||
p_DBGrid = new DBGrid(p_TabArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
p_DBGrid = new DBGrid(p_TabArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
||||||
wxSUNKEN_BORDER);
|
wxSUNKEN_BORDER);
|
||||||
p_TabArea->AddTab(p_DBGrid, Table, "");
|
p_TabArea->AddTab(p_DBGrid, Table, "");
|
||||||
p_DBGrid->i_ViewNr = p_TabArea->GetTabCount()-1;
|
p_DBGrid->i_ViewNr = p_TabArea->GetTabCount()-1;
|
||||||
p_DBGrid->pDoc = this;
|
p_DBGrid->pDoc = this;
|
||||||
p_DBGrid->db_Br = db_Br;
|
p_DBGrid->db_Br = db_Br;
|
||||||
p_DBGrid->OnTableView(Table);
|
p_DBGrid->OnTableView(Table);
|
||||||
p_TabArea->SetActiveTab(p_DBGrid->i_ViewNr);
|
p_TabArea->SetActiveTab(p_DBGrid->i_ViewNr);
|
||||||
p_TabArea->Show(TRUE); // Activate the Window
|
p_TabArea->Show(TRUE); // Activate the Window
|
||||||
}
|
}
|
||||||
if (Tab == 1) // Pageview
|
if (Tab == 1) // Pageview
|
||||||
{
|
{
|
||||||
p_PageArea->Show(FALSE); // Deactivate the Window
|
p_PageArea->Show(FALSE); // Deactivate the Window
|
||||||
p_DBGrid = new DBGrid(p_PageArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
p_DBGrid = new DBGrid(p_PageArea,GRID_CTRL_DB,wxDefaultPosition, wxDefaultSize,
|
||||||
wxSUNKEN_BORDER);
|
wxSUNKEN_BORDER);
|
||||||
p_PageArea->AddTab(p_DBGrid, Table, "");
|
p_PageArea->AddTab(p_DBGrid, Table, "");
|
||||||
p_DBGrid->i_ViewNr = p_PageArea->GetTabCount()-1;
|
p_DBGrid->i_ViewNr = p_PageArea->GetTabCount()-1;
|
||||||
p_DBGrid->pDoc = this;
|
p_DBGrid->pDoc = this;
|
||||||
p_DBGrid->db_Br = db_Br;
|
p_DBGrid->db_Br = db_Br;
|
||||||
p_DBGrid->i_Which = p_DBTree->i_Which;
|
p_DBGrid->i_Which = p_DBTree->i_Which;
|
||||||
p_PageArea->Show(TRUE); // Activate the Window
|
p_PageArea->Show(TRUE); // Activate the Window
|
||||||
p_DBGrid->OnTableView(Table);
|
p_DBGrid->OnTableView(Table);
|
||||||
p_PageArea->SetActiveTab(p_DBGrid->i_ViewNr);
|
p_PageArea->SetActiveTab(p_DBGrid->i_ViewNr);
|
||||||
}
|
}
|
||||||
p_DBGrid->i_TabArt = Tab;
|
p_DBGrid->i_TabArt = Tab;
|
||||||
//---*----------------------
|
//--------------------------
|
||||||
return TRUE;;
|
return TRUE;;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void mjDoc::OnLeer(wxString Aufrufer)
|
void mjDoc::OnLeer(wxString Aufrufer)
|
||||||
{
|
{
|
||||||
// Temp0.Printf(_("\nmjDoc::OnLeer(%s) : auch diese funktion steht eines Tages zur Verf<72>gung !"),Aufrufer.c_str());
|
// Temp0.Printf(_("\nmjDoc::OnLeer(%s) : auch diese funktion steht eines Tages zur Verf<72>gung !"),Aufrufer.c_str());
|
||||||
Temp0.Printf(_("\nmjDoc::OnLeer(%s) : even this function will one day be available !"),Aufrufer.c_str());
|
Temp0.Printf(_("\nmjDoc::OnLeer(%s) : even this function will one day be available !"),Aufrufer.c_str());
|
||||||
wxLogMessage(Temp0); Temp0.Empty();
|
wxLogMessage(Temp0); Temp0.Empty();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BEGIN_EVENT_TABLE(DocSplitterWindow, wxSplitterWindow)
|
BEGIN_EVENT_TABLE(DocSplitterWindow, wxSplitterWindow)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Define a constructor for my p_Splitter
|
DocSplitterWindow::DocSplitterWindow(wxWindow *parent, wxWindowID id) : wxSplitterWindow(parent, id)
|
||||||
DocSplitterWindow::DocSplitterWindow(wxWindow *parent, wxWindowID id) : wxSplitterWindow(parent, id)
|
{ // Define a constructor for my p_Splitter
|
||||||
{
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
//---------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
// Name: Doc.h
|
// 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
|
// Author: Mark Johnson, mj10777@gmx.net
|
||||||
// Modified by: 19990808.mj10777
|
// Modified by: 19990808.mj10777
|
||||||
// Created: 19990808
|
// Created: 19990808
|
||||||
// Copyright: (c) Mark Johnson
|
// Copyright: (c) Mark Johnson
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- Some Global Vars ------------------------------------------------------
|
//-- Some Global Vars --------------------------------------------------------------------
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class DSN
|
class DSN
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -18,52 +18,56 @@ class DSN
|
|||||||
wxString Pas;
|
wxString Pas;
|
||||||
wxString Usr;
|
wxString Usr;
|
||||||
};
|
};
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
// Global structure for holding ODBC connection information
|
// Global structure for holding ODBC connection information
|
||||||
extern struct DbStuff DbConnectInf;
|
extern struct DbStuff DbConnectInf;
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
extern wxConfigBase *p_ProgramCfg; // All Config and Path information
|
extern wxConfigBase *p_ProgramCfg; // All Config and Path information
|
||||||
extern wxLogTextCtrl *p_LogBook; // All Log messages
|
extern wxLogTextCtrl *p_LogBook; // All Log messages
|
||||||
extern wxString LogBuf; // String for all Logs
|
extern wxString LogBuf; // String for all Logs
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class PgmCtrl; // Declared in PgmCtrl.h file
|
class PgmCtrl; // Declared in PgmCtrl.h file
|
||||||
class DocSplitterWindow; // Declared at the end of the file
|
class DocSplitterWindow; // Declared at the end of the file
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class mjDoc
|
class mjDoc
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
mjDoc();
|
mjDoc();
|
||||||
virtual ~mjDoc();
|
virtual ~mjDoc();
|
||||||
int Sash;
|
int Sash;
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
//-- declare document Vars here ---------------------------------------------
|
//-- declare document Vars here ---------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
||||||
BrowserDB *db_Br; // Pointer to wxDB
|
BrowserDB *db_Br; // Pointer to wxDB
|
||||||
DSN *p_DSN;
|
DSN *p_DSN;
|
||||||
int i_DSN; // Counter
|
int i_DSN; // Counter
|
||||||
//---------------------------------------------------------------------------
|
wxString s_BColour;
|
||||||
DocSplitterWindow *p_Splitter;
|
wxFont *ft_Doc;
|
||||||
wxFrame *p_MainFrame; // SDI Version
|
//---------------------------------------------------------------------------------------
|
||||||
PgmCtrl *p_PgmCtrl;
|
DocSplitterWindow *p_Splitter;
|
||||||
DBTree *p_DBTree;
|
wxHtmlHelpController *p_Help;
|
||||||
DBGrid *p_DBGrid;
|
wxFrame *p_MainFrame; // SDI Version
|
||||||
wxTextCtrl *p_LogWin;
|
PgmCtrl *p_PgmCtrl;
|
||||||
wxTabbedWindow *p_TabArea;
|
DBTree *p_DBTree;
|
||||||
wxPaggedWindow *p_PageArea;
|
DBGrid *p_DBGrid;
|
||||||
int i_TabNr; // Amount of active Views in Tab
|
wxTextCtrl *p_LogWin;
|
||||||
int i_PageNr; // Amount of active Views in Page
|
wxTabbedWindow *p_TabArea;
|
||||||
//---------------------------------------------------------------------------
|
wxPaggedWindow *p_PageArea;
|
||||||
//-- declare document Functions here ----------------------------------------
|
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 OnNewDocument();
|
||||||
bool OnInitView();
|
bool OnInitView();
|
||||||
bool OnInitODBC();
|
bool OnInitODBC();
|
||||||
bool OnChosenDSN(int Which);
|
bool OnChosenDSN(int Which);
|
||||||
bool OnChosenTbl(int Tab,wxString Table);
|
bool OnChosenTbl(int Tab,wxString Table);
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void OnLeer(wxString Aufrufer); // Dummy Funktion
|
void OnLeer(wxString Aufrufer); // Dummy Funktion
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
};
|
};
|
||||||
class DocSplitterWindow: public wxSplitterWindow
|
class DocSplitterWindow: public wxSplitterWindow
|
||||||
{
|
{
|
||||||
@@ -79,4 +83,4 @@ class DocSplitterWindow: public wxSplitterWindow
|
|||||||
}
|
}
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: pgmctrl.h
|
// Name: pgmctrl.h
|
||||||
// Purpose: Programm Control with a Tree
|
// Purpose: Programm Control with a Tree
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
@@ -7,25 +7,25 @@
|
|||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #ifdefs that the whole Project needs. ------------------------------
|
//-- all #ifdefs that the whole Project needs. -------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
#pragma implementation
|
#pragma implementation
|
||||||
#pragma interface
|
#pragma interface
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// For compilers that support precompilation, includes "wx/wx.h".
|
// For compilers that support precompilation, includes "wx/wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#ifndef __WXMSW__
|
#ifndef __WXMSW__
|
||||||
#include "bitmaps/d_closed.xpm"
|
#include "bitmaps/d_closed.xpm"
|
||||||
#include "bitmaps/d_open.xpm"
|
#include "bitmaps/d_open.xpm"
|
||||||
@@ -35,267 +35,255 @@
|
|||||||
#include "bitmaps/dsnclose.xpm"
|
#include "bitmaps/dsnclose.xpm"
|
||||||
#include "bitmaps/dsnopen.xpm"
|
#include "bitmaps/dsnopen.xpm"
|
||||||
#endif
|
#endif
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- all #includes that every .cpp needs --- 19990807.mj10777 ---
|
//-- all #includes that every .cpp needs --- 19990807.mj10777 ----------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#include "std.h" // sorgsam Pflegen !
|
#include "std.h" // sorgsam Pflegen !
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
//-- Global functions -------------------------------------------------------
|
//-- Global functions --------------------------------------------------------------------
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
static inline const char *bool2String(bool b)
|
static inline const char *bool2String(bool b)
|
||||||
{
|
{
|
||||||
return b ? "" : "not ";
|
return b ? "" : "not ";
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
BEGIN_EVENT_TABLE(PgmCtrl, wxTreeCtrl)
|
BEGIN_EVENT_TABLE(PgmCtrl, wxTreeCtrl)
|
||||||
EVT_MOTION (PgmCtrl::OnMouseMove)
|
EVT_MOTION (PgmCtrl::OnMouseMove)
|
||||||
EVT_LEFT_DCLICK(PgmCtrl::OnSelChanged)
|
EVT_LEFT_DCLICK(PgmCtrl::OnSelChanged)
|
||||||
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_PGM,PgmCtrl::OnRightSelect)
|
EVT_TREE_ITEM_RIGHT_CLICK(TREE_CTRL_PGM,PgmCtrl::OnRightSelect)
|
||||||
EVT_MENU(PGMCTRL_ODBC_USER,PgmCtrl::OnUserPassword)
|
EVT_MENU(PGMCTRL_ODBC_USER,PgmCtrl::OnUserPassword)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// PgmCtrl implementation
|
// PgmCtrl implementation
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
IMPLEMENT_DYNAMIC_CLASS(PgmCtrl, wxTreeCtrl)
|
IMPLEMENT_DYNAMIC_CLASS(PgmCtrl, wxTreeCtrl)
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
PgmCtrl::PgmCtrl(wxWindow *parent) : wxTreeCtrl(parent)
|
PgmCtrl::PgmCtrl(wxWindow *parent) : wxTreeCtrl(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
PgmCtrl::PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
|
PgmCtrl::PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size, long style)
|
||||||
: wxTreeCtrl(parent, id, pos, size, style)
|
: wxTreeCtrl(parent, id, pos, size, style)
|
||||||
{
|
{
|
||||||
//wxFont* ft_Temp = new wxFont(10,wxSWISS,wxNORMAL,wxBOLD,FALSE,"Comic Sans MS");
|
// Make an image list containing small icons
|
||||||
wxFont* ft_Temp = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
|
p_imageListNormal = new wxImageList(16, 16, TRUE);
|
||||||
SetFont(* ft_Temp);
|
// 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__)
|
#if defined(__WXMSW__) && defined(__WIN16__)
|
||||||
// This is required in 16-bit Windows mode only because we can't load a specific (16x16)
|
// This is required in 16-bit Windows mode only because we can't load a specific (16x16)
|
||||||
// icon image, so it comes out stretched
|
// icon image, so it comes out stretched
|
||||||
p_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
|
p_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
|
||||||
p_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
|
p_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
|
||||||
#else
|
#else
|
||||||
p_imageListNormal->Add(wxICON(Logo));
|
p_imageListNormal->Add(wxICON(aLogo));
|
||||||
p_imageListNormal->Add(wxICON(DsnClosed));
|
p_imageListNormal->Add(wxICON(DsnClosed));
|
||||||
p_imageListNormal->Add(wxICON(DsnOpen));
|
p_imageListNormal->Add(wxICON(DsnOpen));
|
||||||
p_imageListNormal->Add(wxICON(DocClosed));
|
p_imageListNormal->Add(wxICON(DocClosed));
|
||||||
p_imageListNormal->Add(wxICON(DocOpen));
|
p_imageListNormal->Add(wxICON(DocOpen));
|
||||||
p_imageListNormal->Add(wxICON(FolderClosed));
|
p_imageListNormal->Add(wxICON(FolderClosed));
|
||||||
p_imageListNormal->Add(wxICON(FolderOpen));
|
p_imageListNormal->Add(wxICON(FolderOpen));
|
||||||
#endif
|
#endif
|
||||||
|
SetImageList(p_imageListNormal);
|
||||||
SetImageList(p_imageListNormal);
|
|
||||||
|
|
||||||
// Add some items to the tree
|
|
||||||
// AddTestItemsToTree(3, 2);
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
PgmCtrl::~PgmCtrl()
|
PgmCtrl::~PgmCtrl()
|
||||||
{
|
{
|
||||||
// wxMessageBox("PgmCtrl::~PgmCtrl() - vor DeleteAllItems");
|
delete p_imageListNormal;
|
||||||
// DeleteAllItems();
|
|
||||||
// wxMessageBox("nach DeleteAllItems");
|
|
||||||
delete p_imageListNormal;
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#undef TREE_EVENT_HANDLER
|
#undef TREE_EVENT_HANDLER
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
int PgmCtrl::OnPopulate()
|
int PgmCtrl::OnPopulate()
|
||||||
{
|
{
|
||||||
wxTreeItemId Root, Folder, Docu;
|
SetFont(* pDoc->ft_Doc);
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
wxTreeItemId Root, Folder, Docu;
|
||||||
int i;
|
//---------------------------------------------------------------------------------------
|
||||||
double dTmp = 1234567.89;
|
int i;
|
||||||
Temp0.Printf(_("%s Functions"),p_ProgramCfg->GetAppName().c_str());
|
double dTmp = 1234567.89;
|
||||||
Root = AddRoot(Temp0,TreeIc_Logo,TreeIc_Logo, new TreeData("Root"));
|
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);
|
Folder = AppendItem(Root, _("Program settings") ,TreeIc_FolderClosed, TreeIc_FolderOpen, new TreeData("Settings"));
|
||||||
Temp1.Printf(_("locale (%s) ; Language (%s) ; Number(%2.2f)"),Temp0.c_str(), Temp2.c_str(), dTmp); Temp0.Empty(); Temp2.Empty();
|
p_ProgramCfg->Read("/Local/langid",&Temp0); p_ProgramCfg->Read("/Local/language",&Temp2);
|
||||||
Docu = AppendItem(Folder, Temp1 ,TreeIc_DocClosed, TreeIc_DocOpen, new TreeData("Setting Language"));
|
Temp1.Printf(_("locale (%s) ; Language (%s) ; Number(%2.2f)"),Temp0.c_str(), Temp2.c_str(), dTmp); Temp0.Empty(); Temp2.Empty();
|
||||||
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("Setting Language"));
|
||||||
Docu = AppendItem(Folder, Temp1 ,TreeIc_DocClosed, TreeIc_DocOpen, new TreeData("Path Work"));
|
p_ProgramCfg->Read("/Paths/Work",&Temp0); Temp1.Printf(_("Work Path : %s"),Temp0.c_str()); Temp0.Empty();
|
||||||
Docu = AppendItem(Folder, _("Change the language to English") ,TreeIc_DocClosed, TreeIc_DocOpen, new TreeData("Language English"));
|
Docu = AppendItem(Folder,Temp1,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Path Work"));
|
||||||
Docu = AppendItem(Folder, _("Change the language to German") ,TreeIc_DocClosed, TreeIc_DocOpen, new TreeData("Language German"));
|
Docu = AppendItem(Folder, _("Change the language to English") ,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Language English"));
|
||||||
Docu = AppendItem(Folder, _("Delete all wxConfigBase Entry's"),TreeIc_DocClosed, TreeIc_DocOpen, new TreeData("wxConfigBase Delete"));
|
Docu = AppendItem(Folder, _("Change the language to German") ,TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("Language German"));
|
||||||
Folder = AppendItem(Root, "ODBC DSN" ,TreeIc_FolderClosed, TreeIc_FolderOpen, new TreeData("ODBC-DSN"));
|
Docu = AppendItem(Folder, _("Delete all wxConfigBase Entry's"),TreeIc_DocClosed,TreeIc_DocOpen,new TreeData("wxConfigBase Delete"));
|
||||||
for (i=0;i<pDoc->i_DSN;i++)
|
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));
|
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 = NULL;
|
||||||
popupMenu1->Append(PGMCTRL_ODBC_USER, _("Set Username and Password"));
|
popupMenu1 = new wxMenu("");
|
||||||
// popupMenu1->AppendSeparator();
|
popupMenu1->Append(PGMCTRL_ODBC_USER, _("Set Username and Password"));
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
// popupMenu1->AppendSeparator();
|
||||||
Expand(Root);
|
//---------------------------------------------------------------------------------------
|
||||||
Expand(Folder);
|
Expand(Root);
|
||||||
//----------------------------------------------------------------------------------------------------------------------------
|
Expand(Folder);
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void PgmCtrl::OnSelChanged(wxTreeEvent& WXUNUSED(event))
|
void PgmCtrl::OnSelChanged(wxTreeEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Temp0.Empty(); Temp1.Empty();
|
Temp0.Empty(); Temp1.Empty();
|
||||||
pDoc->p_MainFrame->SetStatusText(Temp0,0);
|
pDoc->p_MainFrame->SetStatusText(Temp0,0);
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
TreeData *item = (TreeData *)GetItemData(itemId);
|
TreeData *item = (TreeData *)GetItemData(itemId);
|
||||||
if ( item != NULL )
|
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;
|
pDoc->OnChosenDSN(i);
|
||||||
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() );
|
|
||||||
//---------------------------------------------------
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
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))
|
void PgmCtrl::OnRightSelect(wxTreeEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Temp0.Empty();
|
Temp0.Empty();
|
||||||
// Get the Information that we need
|
// Get the Information that we need
|
||||||
wxTreeItemId itemId = GetSelection();
|
wxTreeItemId itemId = GetSelection();
|
||||||
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
DBTreeData *item = (DBTreeData *)GetItemData(itemId);
|
||||||
SaveDSN.Empty();
|
SaveDSN.Empty();
|
||||||
if ( item != NULL )
|
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;
|
SaveDSN = Temp1;
|
||||||
Temp1.Printf("%s",item->m_desc.c_str());
|
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
|
||||||
//-----------------------------------------------------------------------------------------
|
}
|
||||||
if (Temp1.Contains("ODBC-"))
|
}
|
||||||
{
|
Treffer++;
|
||||||
Temp1 = Temp1.Mid(5,wxSTRING_MAXLEN);
|
}
|
||||||
for (i=0;i<pDoc->i_DSN;i++)
|
//--------------------------------------------------------------------------------------
|
||||||
{
|
if (Treffer == 0)
|
||||||
if (Temp1 == (pDoc->p_DSN+i)->Dsn)
|
{
|
||||||
{
|
/*
|
||||||
SaveDSN = Temp1;
|
Temp0.Printf(_("Item '%s': %sselected, %sexpanded, %sbold,"
|
||||||
PopupMenu(popupMenu1,TreePos.x,TreePos.y);
|
"%u children (%u immediately under this item)."),
|
||||||
}
|
item->m_desc.c_str(),
|
||||||
}
|
bool2String(IsSelected(itemId)),
|
||||||
Treffer++;
|
bool2String(IsExpanded(itemId)),
|
||||||
}
|
|
||||||
//-----------------------------------------------------------------------------------------
|
|
||||||
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)),
|
bool2String(IsBold(itemId)),
|
||||||
GetChildrenCount(itemId),
|
GetChildrenCount(itemId),
|
||||||
GetChildrenCount(itemId));
|
GetChildrenCount(itemId));
|
||||||
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
|
LogBuf.Printf("-I-> DBTree::OnSelChanged - %s",Temp0.c_str());
|
||||||
wxLogMessage( "%s", LogBuf.c_str() );
|
wxLogMessage( "%s", LogBuf.c_str() );
|
||||||
*/
|
*/
|
||||||
//---------------------------------------------------
|
}
|
||||||
}
|
//--------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void PgmCtrl::OnMouseMove(wxMouseEvent &event)
|
void PgmCtrl::OnMouseMove(wxMouseEvent &event)
|
||||||
{
|
{
|
||||||
TreePos = event.GetPosition();
|
TreePos = event.GetPosition();
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void PgmCtrl::OnUserPassword()
|
void PgmCtrl::OnUserPassword()
|
||||||
{
|
{
|
||||||
// wxMessageBox(SaveDSN);
|
// wxMessageBox(SaveDSN);
|
||||||
int i, rc=0;
|
int i, rc=0;
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
DlgUser *p_Dlg = new DlgUser(this, "Username and Password");
|
DlgUser *p_Dlg = new DlgUser(this, "Username and Password");
|
||||||
//-------------------------------------------
|
//-------------------------------------------
|
||||||
for (i=0;i<pDoc->i_DSN;i++)
|
for (i=0;i<pDoc->i_DSN;i++)
|
||||||
{
|
{
|
||||||
if (SaveDSN == (pDoc->p_DSN+i)->Dsn)
|
if (SaveDSN == (pDoc->p_DSN+i)->Dsn)
|
||||||
{
|
{
|
||||||
p_Dlg->s_DSN = (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_User = (pDoc->p_DSN+i)->Usr;
|
||||||
p_Dlg->s_Password = (pDoc->p_DSN+i)->Pas;
|
p_Dlg->s_Password = (pDoc->p_DSN+i)->Pas;
|
||||||
p_Dlg->OnInit();
|
p_Dlg->OnInit();
|
||||||
p_Dlg->Fit();
|
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);
|
// 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);
|
// wxMessageBox(Temp0);
|
||||||
bool OK = FALSE;
|
bool OK = FALSE;
|
||||||
if (p_Dlg->ShowModal() == wxID_OK)
|
if (p_Dlg->ShowModal() == wxID_OK)
|
||||||
{
|
{
|
||||||
(pDoc->p_DSN+i)->Usr = p_Dlg->s_User;
|
(pDoc->p_DSN+i)->Usr = p_Dlg->s_User;
|
||||||
(pDoc->p_DSN+i)->Pas = p_Dlg->s_Password;
|
(pDoc->p_DSN+i)->Pas = p_Dlg->s_Password;
|
||||||
(pDoc->db_Br+i)->UserName = (pDoc->p_DSN+i)->Usr;
|
(pDoc->db_Br+i)->UserName = (pDoc->p_DSN+i)->Usr;
|
||||||
(pDoc->db_Br+i)->Password = (pDoc->p_DSN+i)->Pas;
|
(pDoc->db_Br+i)->Password = (pDoc->p_DSN+i)->Pas;
|
||||||
OK = TRUE;
|
OK = TRUE;
|
||||||
}
|
}
|
||||||
delete p_Dlg;
|
delete p_Dlg;
|
||||||
if (!OK) return;
|
if (!OK) return;
|
||||||
//--------------------
|
//--------------------
|
||||||
break; // We have what we want, leave
|
break; // We have what we want, leave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//-------------------------------------------
|
||||||
//-------------------------------------------
|
SaveDSN.Empty();
|
||||||
SaveDSN.Empty();
|
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Name: pgmctrl.h
|
// Name: pgmctrl.h
|
||||||
// Purpose: Programm Control with a Tree
|
// Purpose: Programm Control with a Tree
|
||||||
// Author: Mark Johnson
|
// Author: Mark Johnson
|
||||||
@@ -7,19 +7,17 @@
|
|||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
// Copyright: (c) Mark Johnson, Berlin Germany, mj10777@gmx.net
|
||||||
// Licence: wxWindows license
|
// Licence: wxWindows license
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class mjDoc; // Declared in doc.h file
|
class mjDoc; // Declared in doc.h file
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class TreeData : public wxTreeItemData
|
class TreeData : public wxTreeItemData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TreeData(const wxString& desc) : m_desc(desc) { }
|
TreeData(const wxString& desc) : m_desc(desc) { }
|
||||||
|
|
||||||
void ShowInfo(wxTreeCtrl *tree);
|
void ShowInfo(wxTreeCtrl *tree);
|
||||||
|
wxString m_desc;
|
||||||
wxString m_desc;
|
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
class PgmCtrl : public wxTreeCtrl
|
class PgmCtrl : public wxTreeCtrl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -34,21 +32,21 @@ class PgmCtrl : public wxTreeCtrl
|
|||||||
TreeIc_FolderOpen // f_open.ico
|
TreeIc_FolderOpen // f_open.ico
|
||||||
};
|
};
|
||||||
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
wxString Temp0, Temp1, Temp2, Temp3, Temp4, Temp5;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
PgmCtrl() { }
|
PgmCtrl() { }
|
||||||
PgmCtrl(wxWindow *parent);
|
PgmCtrl(wxWindow *parent);
|
||||||
PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
|
PgmCtrl(wxWindow *parent, const wxWindowID id,const wxPoint& pos, const wxSize& size,long style);
|
||||||
virtual ~PgmCtrl();
|
virtual ~PgmCtrl();
|
||||||
mjDoc *pDoc;
|
mjDoc *pDoc;
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
int i_TabArt; // Tab = 0 ; Page = 1;
|
int i_TabArt; // Tab = 0 ; Page = 1;
|
||||||
int i_ViewNr; // View Nummer in Tab / Page
|
int i_ViewNr; // View Nummer in Tab / Page
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
wxImageList *p_imageListNormal;
|
wxImageList *p_imageListNormal;
|
||||||
wxMenu *popupMenu1; // OnDBClass
|
wxMenu *popupMenu1; // OnDBClass
|
||||||
wxPoint TreePos;
|
wxPoint TreePos;
|
||||||
wxString SaveDSN; // Needed for User and Password
|
wxString SaveDSN; // Needed for User and Password
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
public:
|
public:
|
||||||
int OnPopulate();
|
int OnPopulate();
|
||||||
void OnSelChanged(wxTreeEvent& event);
|
void OnSelChanged(wxTreeEvent& event);
|
||||||
@@ -57,7 +55,7 @@ class PgmCtrl : public wxTreeCtrl
|
|||||||
void OnUserPassword();
|
void OnUserPassword();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
|
// NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
|
||||||
// if you want your overloaded OnCompareItems() to be called.
|
// if you want your overloaded OnCompareItems() to be called.
|
||||||
// OTOH, if you don't want it you may omit the next line - this will
|
// 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_DYNAMIC_CLASS(PgmCtrl)
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
#define PGMCTRL_01_BEGIN 1000
|
#define PGMCTRL_01_BEGIN 1000
|
||||||
#define PGMCTRL_ODBC_USER 1001
|
#define PGMCTRL_ODBC_USER 1001
|
||||||
#define PGMCTRL_01_END 1010
|
#define PGMCTRL_01_END 1010
|
||||||
//---------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user