]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/newgrid/griddemo.cpp
wxZipFSHandler does not report non-local zip archives as openable anymore
[wxWidgets.git] / samples / newgrid / griddemo.cpp
index 5f34c1c833f9772a86362aa54f1098983b1be7d5..cfc2de54a5dd13e37ca4ea7fec93028e328a24ce 100644 (file)
@@ -97,6 +97,16 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame )
     EVT_MENU( ID_VTABLE, GridFrame::OnVTable)
     EVT_MENU( ID_BUGS_TABLE, GridFrame::OnBugsTable)
 
     EVT_MENU( ID_VTABLE, GridFrame::OnVTable)
     EVT_MENU( ID_BUGS_TABLE, GridFrame::OnBugsTable)
 
+    EVT_MENU( ID_DESELECT_CELL, GridFrame::DeselectCell)
+    EVT_MENU( ID_DESELECT_COL, GridFrame::DeselectCol)
+    EVT_MENU( ID_DESELECT_ROW, GridFrame::DeselectRow)
+    EVT_MENU( ID_DESELECT_ALL, GridFrame::DeselectAll)
+    EVT_MENU( ID_SELECT_CELL, GridFrame::SelectCell)
+    EVT_MENU( ID_SELECT_COL, GridFrame::SelectCol)
+    EVT_MENU( ID_SELECT_ROW, GridFrame::SelectRow)
+    EVT_MENU( ID_SELECT_ALL, GridFrame::SelectAll)
+    EVT_MENU( ID_SELECT_UNSELECT, GridFrame::OnAddToSelectToggle)
+
     EVT_GRID_LABEL_LEFT_CLICK( GridFrame::OnLabelLeftClick )
     EVT_GRID_CELL_LEFT_CLICK( GridFrame::OnCellLeftClick )
     EVT_GRID_ROW_SIZE( GridFrame::OnRowSize )
     EVT_GRID_LABEL_LEFT_CLICK( GridFrame::OnLabelLeftClick )
     EVT_GRID_CELL_LEFT_CLICK( GridFrame::OnCellLeftClick )
     EVT_GRID_ROW_SIZE( GridFrame::OnRowSize )
@@ -166,9 +176,20 @@ GridFrame::GridFrame()
     editMenu->Append( ID_DELETECOL, "Delete selected co&ls" );
     editMenu->Append( ID_CLEARGRID, "Cl&ear grid cell contents" );
 
     editMenu->Append( ID_DELETECOL, "Delete selected co&ls" );
     editMenu->Append( ID_CLEARGRID, "Cl&ear grid cell contents" );
 
+    wxMenu *selectMenu = new wxMenu;
+    selectMenu->Append( ID_SELECT_UNSELECT, "Add new cells to the selection",
+                        "When off, old selection is deselected before "
+                        "selecting the new cells", TRUE );
+    selectMenu->Append( ID_SELECT_ALL, "Select all");
+    selectMenu->Append( ID_SELECT_ROW, "Select row 2");
+    selectMenu->Append( ID_SELECT_COL, "Select col 2");
+    selectMenu->Append( ID_SELECT_CELL, "Select cell (3, 1)");
+    selectMenu->Append( ID_DESELECT_ALL, "Deselect all");
+    selectMenu->Append( ID_DESELECT_ROW, "Deselect row 2");
+    selectMenu->Append( ID_DESELECT_COL, "Deselect col 2");
+    selectMenu->Append( ID_DESELECT_CELL, "Deselect cell (3, 1)");
     wxMenu *selectionMenu = new wxMenu;
     wxMenu *selectionMenu = new wxMenu;
-
-    editMenu->Append( ID_CHANGESEL, "Change &selection mode",
+    selectMenu->Append( ID_CHANGESEL, "Change &selection mode",
                       selectionMenu,
                       "Change selection mode" );
 
                       selectionMenu,
                       "Change selection mode" );
 
@@ -176,6 +197,7 @@ GridFrame::GridFrame()
     selectionMenu->Append( ID_SELROWS, "Select &Rows" );
     selectionMenu->Append( ID_SELCOLS, "Select C&ols" );
 
     selectionMenu->Append( ID_SELROWS, "Select &Rows" );
     selectionMenu->Append( ID_SELCOLS, "Select C&ols" );
 
+
     wxMenu *helpMenu = new wxMenu;
     helpMenu->Append( ID_ABOUT, "&About wxGrid demo" );
 
     wxMenu *helpMenu = new wxMenu;
     helpMenu->Append( ID_ABOUT, "&About wxGrid demo" );
 
@@ -184,10 +206,13 @@ GridFrame::GridFrame()
     menuBar->Append( viewMenu, "&View" );
     menuBar->Append( colMenu,  "&Colours" );
     menuBar->Append( editMenu, "&Edit" );
     menuBar->Append( viewMenu, "&View" );
     menuBar->Append( colMenu,  "&Colours" );
     menuBar->Append( editMenu, "&Edit" );
+    menuBar->Append( selectMenu, "&Select" );
     menuBar->Append( helpMenu, "&Help" );
 
     SetMenuBar( menuBar );
 
     menuBar->Append( helpMenu, "&Help" );
 
     SetMenuBar( menuBar );
 
+    m_addToSel = FALSE;
+
     grid = new wxGrid( this,
                        -1,
                        wxPoint( 0, 0 ),
     grid = new wxGrid( this,
                        -1,
                        wxPoint( 0, 0 ),
@@ -229,7 +254,7 @@ GridFrame::GridFrame()
     grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY);
 
     grid->SetCellValue(4, 4, "a weird looking cell");
     grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY);
 
     grid->SetCellValue(4, 4, "a weird looking cell");
-    grid->SetCellAlignment(4, 4, wxCENTRE, wxCENTRE);
+    grid->SetCellAlignment(4, 4, wxALIGN_CENTRE, wxALIGN_CENTRE);
     grid->SetCellRenderer(4, 4, new MyGridCellRenderer);
 
     grid->SetCellValue(3, 0, "1");
     grid->SetCellRenderer(4, 4, new MyGridCellRenderer);
 
     grid->SetCellValue(3, 0, "1");
@@ -398,16 +423,16 @@ void GridFrame::SetRowLabelHorizAlignment( wxCommandEvent& WXUNUSED(ev) )
 
     switch ( horiz )
     {
 
     switch ( horiz )
     {
-        case wxLEFT:
-            horiz = wxCENTRE;
+        case wxALIGN_LEFT:
+            horiz = wxALIGN_CENTRE;
             break;
 
             break;
 
-        case wxCENTRE:
-            horiz = wxRIGHT;
+        case wxALIGN_CENTRE:
+            horiz = wxALIGN_RIGHT;
             break;
 
             break;
 
-        case wxRIGHT:
-            horiz = wxLEFT;
+        case wxALIGN_RIGHT:
+            horiz = wxALIGN_LEFT;
             break;
     }
 
             break;
     }
 
@@ -421,16 +446,16 @@ void GridFrame::SetRowLabelVertAlignment( wxCommandEvent& WXUNUSED(ev) )
 
     switch ( vert )
     {
 
     switch ( vert )
     {
-        case wxTOP:
-            vert = wxCENTRE;
+        case wxALIGN_TOP:
+            vert = wxALIGN_CENTRE;
             break;
 
             break;
 
-        case wxCENTRE:
-            vert = wxBOTTOM;
+        case wxALIGN_CENTRE:
+            vert = wxALIGN_BOTTOM;
             break;
 
             break;
 
-        case wxBOTTOM:
-            vert = wxTOP;
+        case wxALIGN_BOTTOM:
+            vert = wxALIGN_TOP;
             break;
     }
 
             break;
     }
 
@@ -445,16 +470,16 @@ void GridFrame::SetColLabelHorizAlignment( wxCommandEvent& WXUNUSED(ev) )
 
     switch ( horiz )
     {
 
     switch ( horiz )
     {
-        case wxLEFT:
-            horiz = wxCENTRE;
+        case wxALIGN_LEFT:
+            horiz = wxALIGN_CENTRE;
             break;
 
             break;
 
-        case wxCENTRE:
-            horiz = wxRIGHT;
+        case wxALIGN_CENTRE:
+            horiz = wxALIGN_RIGHT;
             break;
 
             break;
 
-        case wxRIGHT:
-            horiz = wxLEFT;
+        case wxALIGN_RIGHT:
+            horiz = wxALIGN_LEFT;
             break;
     }
 
             break;
     }
 
@@ -469,16 +494,16 @@ void GridFrame::SetColLabelVertAlignment( wxCommandEvent& WXUNUSED(ev) )
 
     switch ( vert )
     {
 
     switch ( vert )
     {
-        case wxTOP:
-            vert = wxCENTRE;
+        case wxALIGN_TOP:
+            vert = wxALIGN_CENTRE;
             break;
 
             break;
 
-        case wxCENTRE:
-            vert = wxBOTTOM;
+        case wxALIGN_CENTRE:
+            vert = wxALIGN_BOTTOM;
             break;
 
             break;
 
-        case wxBOTTOM:
-            vert = wxTOP;
+        case wxALIGN_BOTTOM:
+            vert = wxALIGN_TOP;
             break;
     }
 
             break;
     }
 
@@ -582,6 +607,51 @@ void GridFrame::SetCellBgColour( wxCommandEvent& WXUNUSED(ev) )
     }
 }
 
     }
 }
 
+void GridFrame::DeselectCell(wxCommandEvent& WXUNUSED(event))
+{
+      grid->DeselectCell(3, 1);
+}
+
+void GridFrame::DeselectCol(wxCommandEvent& WXUNUSED(event))
+{
+      grid->DeselectCol(2);
+}
+
+void GridFrame::DeselectRow(wxCommandEvent& WXUNUSED(event))
+{
+      grid->DeselectRow(2);
+}
+
+void GridFrame::DeselectAll(wxCommandEvent& WXUNUSED(event))
+{
+      grid->ClearSelection();
+}
+
+void GridFrame::SelectCell(wxCommandEvent& WXUNUSED(event))
+{
+      grid->SelectBlock(3, 1, 3, 1, m_addToSel);
+}
+
+void GridFrame::SelectCol(wxCommandEvent& WXUNUSED(event))
+{
+      grid->SelectCol(2, m_addToSel);
+}
+
+void GridFrame::SelectRow(wxCommandEvent& WXUNUSED(event))
+{
+      grid->SelectRow(2, m_addToSel);
+}
+
+void GridFrame::SelectAll(wxCommandEvent& WXUNUSED(event))
+{
+      grid->SelectAll();
+}
+
+void GridFrame::OnAddToSelectToggle(wxCommandEvent& event)
+{
+    m_addToSel = event.IsChecked();
+}
+
 void GridFrame::OnLabelLeftClick( wxGridEvent& ev )
 {
     logBuf = "";
 void GridFrame::OnLabelLeftClick( wxGridEvent& ev )
 {
     logBuf = "";