X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f283c683106e70989290fd20a46021c5fd672ef8..1e6b2edfc836c8867cb868e73d35f36a6e68f943:/demos/dbbrowse/dbgrid.cpp diff --git a/demos/dbbrowse/dbgrid.cpp b/demos/dbbrowse/dbgrid.cpp deleted file mode 100644 index d7a3b76bbd..0000000000 --- a/demos/dbbrowse/dbgrid.cpp +++ /dev/null @@ -1,424 +0,0 @@ -//---------------------------------------------------------------------------------------- -// Name: DBGrid.cpp -// Purpose: wxGrid sample -// Author: Mark Johnson -// Modified by: 19990929.mj10777 a reuseable DBGrid -// Created: 19990929 -// Copyright: (c) -// Licence: wxWindows license -// RCS-ID: $Id$ -//---------------------------------------------------------------------------------------- - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" -//---------------------------------------------------------------------------------------- -#ifdef __BORLANDC__ -#pragma hdrstop -#endif -//---------------------------------------------------------------------------------------- -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif -//---------------------------------------------------------------------------------------- -//-- all #includes that every .cpp needs --- 19990807.mj10777 ---------------- -//---------------------------------------------------------------------------------------- -#include "std.h" // sorgsam Pflegen ! -//---------------------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(DBGrid, wxGrid) - EVT_MOTION (DBGrid::OnMouseMove) - // DBGrid - // ------------ - EVT_GRID_CELL_CHANGE( DBGrid::OnCellChange ) - EVT_GRID_CELL_LEFT_CLICK( DBGrid::OnCellLeftClick ) - EVT_GRID_CELL_LEFT_DCLICK( DBGrid::OnCellLeftDClick ) - EVT_GRID_CELL_RIGHT_CLICK( DBGrid::OnCellRightClick ) - EVT_GRID_CELL_RIGHT_DCLICK( DBGrid::OnCellRightDClick ) - // EVT_GRID_COL_SIZE( DBGrid::OnColSize ) - // EVT_GRID_ROW_SIZE( DBGrid::OnRowSize ) - EVT_GRID_EDITOR_SHOWN( DBGrid::OnEditorShown ) - EVT_GRID_EDITOR_HIDDEN( DBGrid::OnEditorHidden ) - EVT_GRID_LABEL_LEFT_CLICK( DBGrid::OnLabelLeftClick ) - EVT_GRID_LABEL_LEFT_DCLICK( DBGrid::OnLabelLeftDClick ) - EVT_GRID_LABEL_RIGHT_CLICK( DBGrid::OnLabelRightClick ) - EVT_GRID_LABEL_RIGHT_DCLICK( DBGrid::OnLabelRightDClick ) - EVT_GRID_RANGE_SELECT( DBGrid::OnRangeSelected ) - EVT_GRID_ROW_SIZE( DBGrid::OnRowSize ) - EVT_GRID_SELECT_CELL( DBGrid::OnSelectCell ) - EVT_MENU(GRID_EDIT,DBGrid::OnModusEdit) - EVT_MENU(GRID_BROWSE,DBGrid::OnModusBrowse) -END_EVENT_TABLE() - -//---------------------------------------------------------------------------------------- -// wxListCtrl(parent, id, pos, size, style) -// wxGrid(parent,wxID_ANY,wxPoint( 0, 0 ), wxSize( 400, 300 ) ); -//---------------------------------------------------------------------------------------- -// DBGrid -//---------------------------------------------------------------------------------------- -// DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size): -// wxGrid(parent, id, pos, size) -DBGrid::DBGrid(wxWindow *parent, const wxWindowID id,const wxPoint& pos,const wxSize& size, long style): -wxGrid(parent, id, pos, size, style) -{ - b_EditModus = false; - //--------------------------------------------------------------------------------------- - popupMenu1 = new wxMenu; - popupMenu1->Append(GRID_EDIT, _("Edit Modus")); - popupMenu2 = new wxMenu; - popupMenu2->Append(GRID_BROWSE, _("Browse Modus")); -} - -//---------------------------------------------------------------------------------------- -DBGrid::~DBGrid() -{ - delete popupMenu1; - delete popupMenu2; -} - -//---------------------------------------------------------------------------------------- -int DBGrid::OnTableView(wxString Table) -{ - wxStopWatch sw; - //--------------------------------------------------------------------------------------- - int x,y,z; - wxString Temp0; - wxBeginBusyCursor(); - SetDefaultCellFont(* pDoc->ft_Doc); - //--------------------------------------------------------------------------------------- - ct_BrowserDB = (db_Br+i_Which)->ct_BrowserDB; // Get the DSN Pointer - //--------------------------------------------------------------------------------------- - if (ct_BrowserDB) // Valid pointer (!= NULL) ? - { // Pointer is Valid, use the wxDatabase Information - for (x=0;xnumTables;x++) // go through the Tables - { - if (!wxStrcmp((ct_BrowserDB->pTableInf+x)->tableName,Table)) // is this our Table ? - { // Yes, the Data of this Table shall be put into the Grid - int ValidTable = x; // Save the Tablenumber - (db_Br+i_Which)->OnSelect(Table,false); // Select * from "table" - // Set the local Pointer to the Column Information we are going to use - (db_Br+i_Which)->cl_BrowserDB = (ct_BrowserDB->pTableInf+x)->pColInf; - if ((ct_BrowserDB->pTableInf+x)->pColInf) // Valid pointer (!= NULL) ? - { // Pointer is Valid, Column Informationen sind Vorhanden - int i = (db_Br+i_Which)->i_Records; // How many Records are there - (db_Br+i_Which)->i_Which = ValidTable; // Still used ???? mj10777 - if (i == 0) // If the Table is empty, then show one empty row - i++; - // wxLogMessage(_("\n-I-> DBGrid::OnTableView() : Vor CreateGrid")); - CreateGrid(i,(ct_BrowserDB->pTableInf+x)->numCols); // Records , Columns - for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++) // Loop through the Fields - { // The Field / Column name is used here as Row Titel - SetColLabelValue(y,((ct_BrowserDB->pTableInf+x)->pColInf+y)->colName); - SetColSize(y,95); - } // for (y=0;y<(ct_BrowserDB->pTableInf+x)->numCols;y++) - SetColSize(((ct_BrowserDB->pTableInf+x)->numCols-1),120); // Make the last Column Wider - // The Grid has been created, now fill it - for (z=0;z<(db_Br+i_Which)->i_Records;z++) // Loop through the Records - { - Temp0.Printf(_T("%06d"),z+1); SetRowLabelValue(z,Temp0); // Set Row Lable Value - (db_Br+i_Which)->OnGetNext((ct_BrowserDB->pTableInf+ValidTable)->numCols,false); - for (y=0;y<(ct_BrowserDB->pTableInf+ValidTable)->numCols;y++) // Loop through the Fields - { // BrowserDB::OnGetNext Formats the field Value into tablename - SetCellValue(z, y,((db_Br+i_Which)->cl_BrowserDB+y)->tableName); - } -#if wxUSE_STATUSBAR - if (z % 50 == 0) - { - Temp0.Printf(_("-I-> DBGrid::OnTableView(%s) - Record %6d (from %d) has been read."),Table.c_str(),z,(db_Br+i_Which)->i_Records); - pDoc->p_MainFrame->SetStatusText(Temp0, 0); - } -#endif // wxUSE_STATUSBAR - } // for (z=0;z<(db_Br+i_Which)->i_Records;z++) - Temp0.Printf(_("-I-> DBGrid::OnTableView(%s) - %6d Records have been read. - Time needed : %ld ms"),Table.c_str(),z,sw.Time()); - wxLogMessage(Temp0); -#if wxUSE_STATUSBAR - pDoc->p_MainFrame->SetStatusText(Temp0, 0); -#endif // wxUSE_STATUSBAR - // The Grid has been filled, now leave - goto Weiter; - } // if ((ct_BrowserDB->pTableInf+x)->pColInf) - else - wxLogMessage(_("\n-E-> DBGrid::OnTableView() : Invalid Column Pointer : Failed")); - } // if ((ct_BrowserDB->pTableInf+x)->tableType == "TABLE") - } // for (x=0;xnumTables;x++) - } // if (ct_BrowserDB) - else - wxLogMessage(_("\n-E-> DBGrid::OnTableView() : Invalid DSN Pointer : Failed")); - //--------------------------------------------------------------------------------------- -Weiter: - EnableEditing(b_EditModus); // Deactivate in-place Editing - wxEndBusyCursor(); - //--------------------------------------------------------------------------------------- - wxLogMessage(_("-I-> DBGrid::OnTableView() - End")); - return 0; -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnModusEdit(wxCommandEvent& WXUNUSED(event)) -{ - b_EditModus = true; // Needed by PopupMenu - EnableEditing(b_EditModus); // Activate in-place Editing - UpdateDimensions(); // Redraw the Grid - // wxLogMessage(_("-I-> DBGrid::OnModusEdit() - End")); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnModusBrowse(wxCommandEvent& WXUNUSED(event)) -{ - b_EditModus = false; // Needed by PopupMenu - EnableEditing(b_EditModus); // Deactivate in-place Editing - UpdateDimensions(); // Redraw the Grid - // wxLogMessage(_("-I-> DBGrid::OnModusBrowse() - End")); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnEditorShown( wxGridEvent& ev ) -{ - // wxLogMessage(_("-I-> DBGrid::OnEditorShown() - End")); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnEditorHidden( wxGridEvent& ev ) -{ - // wxLogMessage(_("-I-> DBGrid::OnEditorHidden() - End")); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnSelectCell( wxGridEvent& ev ) -{ - logBuf = wxEmptyString; - logBuf << _T("Selected cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - wxLogMessage( _T("%s"), logBuf.c_str() ); - // you must call Skip() if you want the default processing - // to occur in wxGrid - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnMouseMove(wxMouseEvent &event) -{ - MousePos = event.GetPosition(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnLabelLeftClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnLabelLeftClick : "); - if ( ev.GetRow() != -1 ) - { - logBuf << _T("row label ") << ev.GetRow(); - } - else if ( ev.GetCol() != -1 ) - { - logBuf << _T("col label ") << ev.GetCol(); - } - else - { - logBuf << _T("corner label"); - } - if ( ev.ShiftDown() ) - logBuf << _T(" (shift down)"); - - // wxLogMessage( "%s", logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnLabelRightClick( wxGridEvent& ev ) -{ - //------------------------------------------------------- - if (b_EditModus) - PopupMenu(popupMenu2,MousePos.x,MousePos.y); - else - PopupMenu(popupMenu1,MousePos.x,MousePos.y); - //------------------- - logBuf = _T("DBGrid::OnLabelRightClick : "); - if ( ev.GetRow() != -1 ) - { - logBuf << _T("row label ") << ev.GetRow(); - } - else if ( ev.GetCol() != -1 ) - { - logBuf << _T("col label ") << ev.GetCol(); - } - else - { - logBuf << _T("corner label"); - } - if ( ev.ShiftDown() ) - logBuf << _T(" (shift down)"); - - // wxLogMessage( "%s", logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnLabelLeftDClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnLabelLeftDClick : "); - if ( ev.GetRow() != -1 ) - { - logBuf << _T("row label ") << ev.GetRow(); - } - else if ( ev.GetCol() != -1 ) - { - logBuf << _T("col label ") << ev.GetCol(); - } - else - { - logBuf << _T("corner label"); - } - if ( ev.ShiftDown() ) - logBuf << _T(" (shift down)"); - - // wxLogMessage( _T("%s"), logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnLabelRightDClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnLabelRightDClick : "); - if ( ev.GetRow() != -1 ) - { - logBuf << _T("row label ") << ev.GetRow(); - } - else if ( ev.GetCol() != -1 ) - { - logBuf << _T("col label ") << ev.GetCol(); - } - else - { - logBuf << _T("corner label"); - } - if ( ev.ShiftDown() ) - logBuf << _T(" (shift down)"); - // wxLogMessage( "%s", logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnCellLeftClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnCellLeftClick : "); - logBuf << _T("Cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - // wxMessageBox(logBuf); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - // you must call event skip if you want default grid processing - // (cell highlighting etc.) - // - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnCellRightClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnCellRightClick : "); - logBuf << _T("Cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - // wxMessageBox(logBuf); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - // you must call event skip if you want default grid processing - // (cell highlighting etc.) - // - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnCellLeftDClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnCellLeftDClick : "); - logBuf << _T("Cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - // wxMessageBox(logBuf); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - // you must call event skip if you want default grid processing - // (cell highlighting etc.) - // - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnCellRightDClick( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnCellRightDClick : "); - logBuf << _T("Cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - // wxMessageBox(logBuf); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - // you must call event skip if you want default grid processing - // (cell highlighting etc.) - // - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnCellChange( wxGridEvent& ev ) -{ - logBuf = _T("DBGrid::OnCellChange : "); - logBuf << _T("Cell at row ") << ev.GetRow() - << _T(" col ") << ev.GetCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - // wxMessageBox(logBuf); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - // you must call event skip if you want default grid processing - // (cell highlighting etc.) - // - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnRowSize( wxGridSizeEvent& ev ) -{ - logBuf = _T("DBGrid::OnRowSize : "); - logBuf << _T("Resized row ") << ev.GetRowOrCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnColSize( wxGridSizeEvent& ev ) -{ - logBuf = _T("DBGrid::OnColSize : "); - logBuf << _T("Resized col ") << ev.GetRowOrCol(); - // wxLogMessage( "%s", logBuf.c_str() ); - logBuf += _T("\n"); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} - -//---------------------------------------------------------------------------------------- -void DBGrid::OnRangeSelected( wxGridRangeSelectEvent& ev ) -{ - logBuf = _T("DBGrid::OnRangeSelected : "); - logBuf << _T("Selected cells from row ") << ev.GetTopRow() - << _T(" col ") << ev.GetLeftCol() - << _T(" to row ") << ev.GetBottomRow() - << _T(" col ") << ev.GetRightCol(); - logBuf += _T("\n"); - // wxLogMessage( "%s", logBuf.c_str() ); - wxLogMessage(logBuf.c_str()); - ev.Skip(); -} -//----------------------------------------------------------------------------------------