wxChar* usage changed over to wxString in various places

Warning fixes when compiling in compatibility 2_4 mode to force use of the desired wxDbTable constructor
Added OnDClick() event to listbox to auto-click the OK button to select a name
Unicode fix of a SQL_C_CHAR reference


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
George Tasker 2004-11-10 12:19:55 +00:00
parent c3677ad324
commit e689d52ab5
2 changed files with 62 additions and 43 deletions

View File

@ -89,7 +89,7 @@ extern wxApp *DatabaseDemoApp;
* NOTE: The value returned by this function is for temporary use only and
* should be copied for long term use
*/
const wxChar *GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
wxString GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
{
static wxString msg;
msg = wxT("");
@ -125,17 +125,17 @@ const wxChar *GetExtendedDBErrorMsg2(wxDb *pDb, wxChar *ErrFile, int ErrLine)
}
msg += wxT("\n");
return msg.c_str();
return msg;
} // GetExtendedDBErrorMsg
// Clookup constructor
Clookup::Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &defDir)
: wxDbTable(pDb, tblName, 1, wxEmptyString, !wxDB_QUERY_ONLY,
: wxDbTable(pDb, tblName, 1, (const wxString &)wxEmptyString, !wxDB_QUERY_ONLY,
defDir)
{
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
} // Clookup()
@ -143,7 +143,7 @@ Clookup::Clookup(wxString tblName, wxString colName, wxDb *pDb, const wxString &
// Clookup2 constructor
Clookup2::Clookup2(wxString tblName, wxString colName1, wxString colName2,
wxDb *pDb, const wxString &defDir)
: wxDbTable(pDb, tblName, (UWORD)(1 + (wxStrlen(colName2) > 0)), wxEmptyString,
: wxDbTable(pDb, tblName, (UWORD)(1 + (wxStrlen(colName2) > 0)), (const wxString &)wxEmptyString,
!wxDB_QUERY_ONLY, defDir)
{
wxASSERT(pDb);
@ -153,10 +153,10 @@ Clookup2::Clookup2(wxString tblName, wxString colName1, wxString colName2,
int i = 0;
SetColDefs ((UWORD)i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
SetColDefs ((UWORD)i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
if (wxStrlen(colName2) > 0)
SetColDefs ((UWORD)(++i), colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_CHAR, LOOKUP_COL_LEN+1, false, false);
SetColDefs ((UWORD)(++i), colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_WXCHAR, LOOKUP_COL_LEN+1, false, false);
} // Clookup2()
@ -165,12 +165,13 @@ BEGIN_EVENT_TABLE(ClookUpDlg, wxDialog)
EVT_BUTTON(LOOKUP_DIALOG_OK, ClookUpDlg::OnButton)
EVT_BUTTON(LOOKUP_DIALOG_CANCEL, ClookUpDlg::OnButton)
EVT_CLOSE(ClookUpDlg::OnClose)
EVT_LISTBOX_DCLICK(LOOKUP_DIALOG_SELECT, ClookUpDlg::OnDClick)
END_EVENT_TABLE()
// This is a generic lookup constructor that will work with any table and any column
ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
wxChar *colName, wxChar *where, wxChar *orderBy,
ClookUpDlg::ClookUpDlg(wxWindow *parent, const wxString &windowTitle, const wxString &tableName,
const wxString &colName, const wxString &where, const wxString &orderBy,
wxDb *pDb, const wxString &defDir)
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
{
@ -183,9 +184,9 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
noDisplayCols = 1;
col1Len = 0;
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint( 5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, wxT("LookUpSelectList"));
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, wxT("&Ok"), wxPoint(113, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpOkBtn"));
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, wxT("C&ancel"), wxPoint(212, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpCancelBtn"));
pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint( 5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, wxT("LookUpSelectList"));
pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, wxT("&Ok"), wxPoint(113, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpOkBtn"));
pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, wxT("C&ancel"), wxPoint(212, 222), wxSize( 70, 35), 0, wxDefaultValidator, wxT("LookUpCancelBtn"));
widgetPtrsSet = true;
@ -193,7 +194,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
lookup = new Clookup(tableName, colName, pDb, defDir);
if (!lookup)
{
wxMessageBox(wxT("Error allocating memory for 'Clookup'object."),wxT("Error..."));
wxMessageBox(wxT("Error allocating memory for 'Clookup' object."),wxT("Error..."));
Close();
return;
}
@ -201,8 +202,8 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
if (!lookup->Open())
{
wxString tStr;
tStr.Printf(wxT("Unable to open the table '%s'."),tableName);
wxMessageBox(tStr,wxT("ODBC Error..."));
tStr.Printf(wxT("Unable to open the table '%s'."), tableName);
wxMessageBox(tStr, wxT("ODBC Error..."));
Close();
return;
}
@ -211,7 +212,7 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
lookup->SetWhereClause(where);
if (!lookup->Query())
{
wxMessageBox(wxT("ODBC error during Query()"),wxT("ODBC Error..."));
wxMessageBox(wxT("ODBC error during Query()"), wxT("ODBC Error..."));
Close();
return;
}
@ -265,10 +266,11 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
// records are being saved, but not committed to the db, yet should be included
// in the lookup window.
//
ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
wxChar *dispCol1, wxChar *dispCol2, wxChar *where, wxChar *orderBy,
ClookUpDlg::ClookUpDlg(wxWindow *parent, const wxString &windowTitle, const wxString &tableName,
const wxString &dispCol1, const wxString &dispCol2,
const wxString &where, const wxString &orderBy,
wxDb *pDb, const wxString &defDir, bool distinctValues,
wxChar *selectStmt, int maxLenCol1, bool allowOk)
const wxString &selectStmt, int maxLenCol1, bool allowOk)
: wxDialog (parent, LOOKUP_DIALOG, wxT("Select..."), wxDefaultPosition, wxSize(400, 290))
{
wxBeginBusyCursor();
@ -278,10 +280,11 @@ ClookUpDlg::ClookUpDlg(wxWindow *parent, wxChar *windowTitle, wxChar *tableName,
widgetPtrsSet = false;
lookup = 0;
lookup2 = 0;
noDisplayCols = (wxStrlen(dispCol2) ? 2 : 1);
noDisplayCols = (dispCol2.Length() == 0 ? 1 : 2);
col1Len = 0;
wxFont fixedFont(12,wxMODERN,wxNORMAL,wxNORMAL);
wxFont fixedFont(12, wxMODERN, wxNORMAL, wxNORMAL);
// this is done with fixed font so that the second column (if any) will be left
// justified in the second column
@ -423,6 +426,13 @@ void ClookUpDlg::OnClose(wxCloseEvent& event)
} // ClookUpDlg::OnClose
void ClookUpDlg::OnDClick( wxCommandEvent &event )
{
wxWindow *win = (wxWindow*) event.GetEventObject();
OnCommand( *win, event );
}
void ClookUpDlg::OnButton( wxCommandEvent &event )
{
wxWindow *win = (wxWindow*) event.GetEventObject();
@ -436,8 +446,15 @@ void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& WXUNUSED(event))
if (widgetPtrsSet)
{
bool doubleclick = false;
// Double click
if (widgetName == pLookUpSelectList->GetName())
{
doubleclick = true;
} // Double click
// OK Button
if (widgetName == pLookUpOkBtn->GetName())
if (widgetName == pLookUpOkBtn->GetName() || doubleclick)
{
if (pLookUpSelectList->GetSelection() != -1)
{
@ -472,6 +489,7 @@ void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& WXUNUSED(event))
wxStrcpy (ListDB_Selection2,wxT(""));
Close();
} // Cancel Button
}
}; // ClookUpDlg::OnCommand

View File

@ -68,14 +68,14 @@ class ClookUpDlg : public wxDialog
public:
// This is a generic lookup constructor that will work with any table and any column
ClookUpDlg(wxWindow *parent,
wxChar *windowTitle,
wxChar *tableName,
wxChar *colName,
wxChar *where,
wxChar *orderBy,
wxDb *pDb,
const wxString &defDir);
ClookUpDlg(wxWindow *parent,
const wxString &windowTitle,
const wxString &tableName,
const wxString &colName,
const wxString &where,
const wxString &orderBy,
wxDb *pDb,
const wxString &defDir);
//
// This is a generic lookup constructor that will work with any table and any column.
@ -102,23 +102,24 @@ class ClookUpDlg : public wxDialog
// in the lookup window.
//
ClookUpDlg(wxWindow *parent,
wxChar *windowTitle,
wxChar *tableName,
wxChar *dispCol1, // Must have at least 1 display column
wxChar *dispCol2, // Optional
wxChar *where,
wxChar *orderBy,
wxDb *pDb, // Database connection pointer
const wxString &defDir,
bool distinctValues, // e.g. SELECT DISTINCT ...
wxChar *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups)
int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
bool allowOk = true); // is the OK button enabled
const wxString &windowTitle,
const wxString &tableName,
const wxString &dispCol1, // Must have at least 1 display column
const wxString &dispCol2, // Optional
const wxString &where,
const wxString &orderBy,
wxDb *pDb, // Database connection pointer
const wxString &defDir,
bool distinctValues, // e.g. SELECT DISTINCT ...
const wxString &selectStmt = wxEmptyString, // If you wish to query by SQLstmt (complicated lookups)
int maxLenCol1 = 0, // Mandatory if querying by SQLstmt
bool allowOk = true); // is the OK button enabled
void OnButton( wxCommandEvent &event );
void OnButton(wxCommandEvent &event);
void OnCommand(wxWindow& win, wxCommandEvent& event);
void OnClose(wxCloseEvent& event);
void OnActivate(bool) {}; // necessary for hot keys
void OnDClick(wxCommandEvent &event);
DECLARE_EVENT_TABLE()
}; // class ClookUpDlg