-#
-# File: makefile.unx
-# Author: Julian Smart
-# Created: 1998
-# Updated:
-# Copyright: (c) 1998 Julian Smart
-#
-# "%W% %G%"
-#
-# Makefile for toolbar example (UNIX).
+# Purpose: makefile for grid example (UNIX).
+# Created: 2000-03-15
top_srcdir = @top_srcdir@/..
top_builddir = ../..
PROGRAM=grid
-OBJECTS=test.o
-
+OBJECTS=$(PROGRAM).o
include ../../src/makeprog.env
-
--- /dev/null
+/*
+ * File: grid.cpp
+ * Purpose: wxGrid test
+ * Author: Julian Smart
+ * Created: 1995
+ * Updated:
+ * Copyright: (c) 1995, AIAI, University of Edinburgh
+ */
+
+static const char sccsid[] = "%W% %G%";
+
+#ifdef __GNUG__
+#pragma implementation
+#pragma interface
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#include "wx/grid.h"
+#include "wx/colordlg.h"
+
+// Define a new application type
+class MyApp: public wxApp
+{ public:
+ bool OnInit(void);
+};
+
+
+// Define a new frame type
+class MyFrame: public wxFrame
+{ public:
+ wxGrid *grid;
+ MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
+
+ void ToggleEditable(wxCommandEvent& event);
+ void ToggleEditInPlace(wxCommandEvent& event);
+ void ToggleRowLabel(wxCommandEvent& event);
+ void ToggleColLabel(wxCommandEvent& event);
+ void ToggleDividers(wxCommandEvent& event);
+ void LeftCell(wxCommandEvent& event);
+ void CentreCell(wxCommandEvent& event);
+ void RightCell(wxCommandEvent& event);
+ void ColourLabelBackground(wxCommandEvent& event);
+ void ColourLabelText(wxCommandEvent& event);
+ void NormalLabelColouring(wxCommandEvent& event);
+ void ColourCellBackground(wxCommandEvent& event);
+ void ColourCellText(wxCommandEvent& event);
+ void NormalCellColouring(wxCommandEvent& event);
+ void Quit(wxCommandEvent& event);
+
+ void OnActivate(wxActivateEvent& event);
+
+DECLARE_EVENT_TABLE()
+};
+
+wxBitmap *cellBitmap1 = (wxBitmap *) NULL;
+wxBitmap *cellBitmap2 = (wxBitmap *) NULL;
+
+// ID for the menu quit command
+#define GRID_QUIT 1
+#define GRID_TOGGLE_EDITABLE 2
+#define GRID_TOGGLE_EDITINPLACE 22
+#define GRID_LEFT_CELL 3
+#define GRID_CENTRE_CELL 4
+#define GRID_RIGHT_CELL 5
+#define GRID_TOGGLE_ROW_LABEL 6
+#define GRID_TOGGLE_COL_LABEL 7
+#define GRID_COLOUR_LABEL_BACKGROUND 8
+#define GRID_COLOUR_LABEL_TEXT 9
+#define GRID_NORMAL_LABEL_COLOURING 10
+#define GRID_COLOUR_CELL_BACKGROUND 11
+#define GRID_COLOUR_CELL_TEXT 12
+#define GRID_NORMAL_CELL_COLOURING 13
+#define GRID_TOGGLE_DIVIDERS 14
+
+// Main proc
+
+IMPLEMENT_APP(MyApp)
+
+// `Main program' equivalent, creating windows and returning main app frame
+bool MyApp::OnInit(void)
+{
+#ifdef __WXMSW__
+ cellBitmap1 = new wxBitmap("bitmap1");
+ cellBitmap2 = new wxBitmap("bitmap2");
+#endif
+
+ // Create the main frame window
+ MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxGrid Sample", wxPoint(50, 50), wxSize(450, 300));
+
+ // Give it an icon
+#ifdef __WXMSW__
+ frame->SetIcon(wxIcon("mondrian"));
+#endif
+
+ // Make a menubar
+ wxMenu *file_menu = new wxMenu;
+ file_menu->Append(GRID_QUIT, "E&xit");
+
+ wxMenu *settings_menu = new wxMenu;
+ settings_menu->Append(GRID_TOGGLE_EDITABLE, "&Toggle editable");
+ settings_menu->Append(GRID_TOGGLE_EDITINPLACE, "&Toggle edit in place");
+ settings_menu->Append(GRID_TOGGLE_ROW_LABEL, "Toggle ro&w label");
+ settings_menu->Append(GRID_TOGGLE_COL_LABEL, "Toggle co&l label");
+ settings_menu->Append(GRID_TOGGLE_DIVIDERS, "Toggle ÷rs");
+ settings_menu->AppendSeparator();
+ settings_menu->Append(GRID_LEFT_CELL, "&Left cell alignment ");
+ settings_menu->Append(GRID_CENTRE_CELL, "&Centre cell alignment ");
+ settings_menu->Append(GRID_RIGHT_CELL, "&Right cell alignment ");
+ settings_menu->AppendSeparator();
+ settings_menu->Append(GRID_COLOUR_LABEL_BACKGROUND, "Choose a label &background colour");
+ settings_menu->Append(GRID_COLOUR_LABEL_TEXT, "Choose a label fore&ground colour");
+ settings_menu->Append(GRID_NORMAL_LABEL_COLOURING, "&Normal label colouring");
+ settings_menu->AppendSeparator();
+ settings_menu->Append(GRID_COLOUR_CELL_BACKGROUND, "Choo&se a cell &background colour");
+ settings_menu->Append(GRID_COLOUR_CELL_TEXT, "Choose &a cell foreground colour");
+ settings_menu->Append(GRID_NORMAL_CELL_COLOURING, "N&ormal cell colouring");
+
+ wxMenuBar *menu_bar = new wxMenuBar;
+ menu_bar->Append(file_menu, "&File");
+ menu_bar->Append(settings_menu, "&Settings");
+ frame->SetMenuBar(menu_bar);
+
+ // Make a grid
+ frame->grid = new wxGrid(frame, 0, 0, 400, 400);
+
+ frame->grid->CreateGrid(10, 8);
+ frame->grid->SetColumnWidth(3, 200);
+ frame->grid->SetRowHeight(4, 45);
+ frame->grid->SetCellValue("First cell", 0, 0);
+ frame->grid->SetCellValue("Another cell", 1, 1);
+ frame->grid->SetCellValue("Yet another cell", 2, 2);
+ frame->grid->SetCellTextFont(* wxTheFontList->FindOrCreateFont(10, wxROMAN, wxITALIC, wxNORMAL), 0, 0);
+ frame->grid->SetCellTextColour(*wxRED, 1, 1);
+ frame->grid->SetCellBackgroundColour(*wxCYAN, 2, 2);
+ if (cellBitmap1 && cellBitmap2)
+ {
+ frame->grid->SetCellAlignment(wxCENTRE, 5, 0);
+ frame->grid->SetCellAlignment(wxCENTRE, 6, 0);
+ frame->grid->SetCellBitmap(cellBitmap1, 5, 0);
+ frame->grid->SetCellBitmap(cellBitmap2, 6, 0);
+ }
+
+ frame->grid->UpdateDimensions();
+
+ // Show the frame
+ frame->Show(TRUE);
+
+ SetTopWindow(frame);
+ return TRUE;
+}
+
+// My frame constructor
+MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size):
+ wxFrame(frame, -1, title, pos, size)
+{
+ grid = (wxGrid*) NULL;
+}
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(GRID_TOGGLE_EDITABLE, MyFrame::ToggleEditable)
+ EVT_MENU(GRID_TOGGLE_EDITINPLACE, MyFrame::ToggleEditInPlace)
+ EVT_MENU(GRID_TOGGLE_ROW_LABEL, MyFrame::ToggleRowLabel)
+ EVT_MENU(GRID_TOGGLE_COL_LABEL, MyFrame::ToggleColLabel)
+ EVT_MENU(GRID_TOGGLE_DIVIDERS, MyFrame::ToggleDividers)
+ EVT_MENU(GRID_LEFT_CELL, MyFrame::LeftCell)
+ EVT_MENU(GRID_CENTRE_CELL, MyFrame::CentreCell)
+ EVT_MENU(GRID_RIGHT_CELL, MyFrame::RightCell)
+ EVT_MENU(GRID_COLOUR_LABEL_BACKGROUND, MyFrame::ColourLabelBackground)
+ EVT_MENU(GRID_COLOUR_LABEL_TEXT, MyFrame::ColourLabelText)
+ EVT_MENU(GRID_NORMAL_LABEL_COLOURING, MyFrame::NormalLabelColouring)
+ EVT_MENU(GRID_COLOUR_CELL_BACKGROUND, MyFrame::ColourCellBackground)
+ EVT_MENU(GRID_COLOUR_CELL_TEXT, MyFrame::ColourCellText)
+ EVT_MENU(GRID_NORMAL_CELL_COLOURING, MyFrame::NormalCellColouring)
+ EVT_MENU(GRID_QUIT, MyFrame::Quit)
+END_EVENT_TABLE()
+
+void MyFrame::ToggleEditable(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetEditable(!grid->GetEditable());
+ grid->Refresh();
+}
+
+void MyFrame::ToggleEditInPlace(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetEditInPlace(!grid->GetEditInPlace());
+ grid->Refresh();
+}
+
+void MyFrame::ToggleRowLabel(wxCommandEvent& WXUNUSED(event))
+{
+ if (grid->GetLabelSize(wxVERTICAL) > 0)
+ grid->SetLabelSize(wxVERTICAL, 0);
+ else
+ grid->SetLabelSize(wxVERTICAL, 40);
+ grid->Refresh();
+}
+
+void MyFrame::ToggleColLabel(wxCommandEvent& WXUNUSED(event))
+{
+ if (grid->GetLabelSize(wxHORIZONTAL) > 0)
+ grid->SetLabelSize(wxHORIZONTAL, 0);
+ else
+ grid->SetLabelSize(wxHORIZONTAL, 20);
+ grid->Refresh();
+}
+
+void MyFrame::ToggleDividers(wxCommandEvent& WXUNUSED(event))
+{
+ if (!grid->GetDividerPen().Ok())
+ grid->SetDividerPen(* wxThePenList->FindOrCreatePen("LIGHT GREY", 1, wxSOLID));
+ else
+ grid->SetDividerPen(wxNullPen);
+ grid->Refresh();
+}
+
+void MyFrame::LeftCell(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetCellAlignment(wxLEFT);
+ grid->Refresh();
+}
+
+void MyFrame::CentreCell(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetCellAlignment(wxCENTRE);
+ grid->Refresh();
+}
+
+void MyFrame::RightCell(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetCellAlignment(wxRIGHT);
+ grid->Refresh();
+}
+
+void MyFrame::ColourLabelBackground(wxCommandEvent& WXUNUSED(event))
+{
+ wxColourData data;
+ data.SetChooseFull(TRUE);
+ wxColourDialog dialog(this, &data);
+ if (dialog.ShowModal() != wxID_CANCEL)
+ {
+ wxColourData retData = dialog.GetColourData();
+ wxColour col = retData.GetColour();
+ grid->SetLabelBackgroundColour(col);
+ grid->Refresh();
+ }
+}
+
+void MyFrame::ColourLabelText(wxCommandEvent& WXUNUSED(event))
+{
+ wxColourData data;
+ data.SetChooseFull(TRUE);
+ wxColourDialog dialog(this, &data);
+ if (dialog.ShowModal() != wxID_CANCEL)
+ {
+ wxColourData retData = dialog.GetColourData();
+ wxColour col = retData.GetColour();
+ grid->SetLabelTextColour(col);
+ grid->Refresh();
+ }
+}
+
+void MyFrame::NormalLabelColouring(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetLabelBackgroundColour(*wxLIGHT_GREY);
+ grid->SetLabelTextColour(*wxBLACK);
+ grid->Refresh();
+}
+
+void MyFrame::ColourCellBackground(wxCommandEvent& WXUNUSED(event))
+{
+ wxColourData data;
+ data.SetChooseFull(TRUE);
+ wxColourDialog dialog(this, &data);
+ if (dialog.ShowModal() != wxID_CANCEL)
+ {
+ wxColourData retData = dialog.GetColourData();
+ wxColour col = retData.GetColour();
+ grid->SetCellBackgroundColour(col);
+ grid->Refresh();
+ }
+}
+
+void MyFrame::ColourCellText(wxCommandEvent& WXUNUSED(event))
+{
+ wxColourData data;
+ data.SetChooseFull(TRUE);
+ wxColourDialog dialog(this, &data);
+ if (dialog.ShowModal() != wxID_CANCEL)
+ {
+ wxColourData retData = dialog.GetColourData();
+ wxColour col = retData.GetColour();
+ grid->SetCellTextColour(col);
+ grid->Refresh();
+ }
+}
+
+void MyFrame::NormalCellColouring(wxCommandEvent& WXUNUSED(event))
+{
+ grid->SetCellBackgroundColour(*wxWHITE);
+ grid->SetCellTextColour(*wxBLACK);
+ grid->Refresh();
+}
+
+void MyFrame::Quit(wxCommandEvent& WXUNUSED(event))
+{
+ this->Close(TRUE);
+}
+
+// Ensure that the grid's edit control always has the focus.
+void MyFrame::OnActivate(wxActivateEvent& event)
+{
+ if (grid) grid->OnActivate(event.GetActive());
+}
+
--- /dev/null
+NAME Grid
+DESCRIPTION 'wxTableWindow Test'
+EXETYPE WINDOWS
+STUB 'WINSTUB.EXE'
+CODE PRELOAD MOVEABLE DISCARDABLE
+DATA PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE 1024
+STACKSIZE 16192
--- /dev/null
+#include "wx/msw/wx.rc"
+
+bitmap1 BITMAP "bitmap1.bmp"
+bitmap2 BITMAP "bitmap2.bmp"
+
-#
-# File: makefile.b32
-# Author: Julian Smart
-# Created: 1999
-# Updated:
-# Copyright:
-#
-# Makefile : Builds sample for 32-bit BC++
+# Purpose: makefile for grid example (BC++ 32bit)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=grid
OBJECTS = $(TARGET).obj
!include $(WXDIR)\src\makeprog.b32
-#
-# File: makefile.bcc
-# Author: Julian Smart
-# Created: 1998
-# Updated:
-#
-# Builds a BC++ 16-bit sample
+# Purpose: makefile for grid example (BC++ 16bit)
+# Created: 2000-03-15
!if "$(WXWIN)" == ""
!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=grid
OBJECTS=$(TARGET).obj
!include $(WXDIR)\src\makeprog.bcc
-#
-# File: makefile.dos
-# Author: Julian Smart
-# Created: 1998
-# Updated:
-#
-# Makefile : Builds 16-bit sample, VC++ 1.5
-# Use FINAL=1 argument to nmake to build final version with no debugging
-# info
+# Purpose: makefile for grid example (VC++ 1.5x)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
-OBJECTS = $(TARGET).obj
+TARGET=grid
+OBJECTS=$(TARGET).obj
!include $(WXDIR)\src\makeprog.msc
-#
-# File: makefile.g95
-# Author: Julian Smart
-# Created: 1999
-# Updated:
-# Copyright: (c) Julian Smart, 1999
-#
-# Makefile for wxWindows sample (Cygwin/Mingw32).
+# Purpose: makefile for grid example (Cygwin/Mingw32)
+# Created: #03.01.00
WXDIR = ../..
-TARGET=test
+TARGET=grid
OBJECTS = $(TARGET).o
-include $(WXDIR)/src/makeprog.g95
+include $(WXDIR)\src\makeprog.g95
--- /dev/null
+# Purpose: makefile for grid example (Symantec C++)
+# Created: 2000-03-15
+
+WXDIR = $(WXWIN)
+WXLIB = $(WXDIR)\lib\wx.lib
+INCDIR = $(WXDIR)\include
+INCLUDE=$(INCDIR)
+TARGET=grid
+
+include $(WXDIR)\src\makesc.env
+
+grid.exe: grid.obj $(DEFFILE) grid.res
+ *$(CC) $(LDFLAGS) -o$@ $** $(LIBS)
+ *$(RC) -k grid.res
+
+sc32.def:
+ echo EXETYPE NT > sc32.def
+ echo SUBSYSTEM WINDOWS >> sc32.def
+
+sc16.def:
+ echo NAME $(TARGET) > sc16.def
+ echo EXETYPE WINDOWS >> sc16.def
+ echo STUB 'WINSTUB.EXE' >> sc16.def
+ echo CODE PRELOAD MOVEABLE DISCARDABLE >> sc16.def
+ echo DATA PRELOAD MOVEABLE MULTIPLE >> sc16.def
+ echo HEAPSIZE 1024 >> sc16.def
+ echo STACKSIZE 8192 >> sc16.def
+
+clean:
+ -del *.obj
+ -del *.exe
+ -del *.res
+ -del *.map
+ -del *.rws
+ -del sc32.def
+ -del sc16.def
+
--- /dev/null
+# Purpose: makefile for grid example (Salford C++)
+# Created: 2000-03-15
+
+PROGRAM = grid
+OBJECTS = $(PROGRAM).obj
+
+include ..\..\src\makeprog.sl
+
+all: wx $(TARGET)
+
+wx:
+ cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all
+ cd $(WXDIR)\samples\grid
+
--- /dev/null
+# Purpose: makefile for grid example (TWIN)
+# Created: 2000-03-15
+
+WXDIR = ../..
+
+# All common UNIX compiler flags and options are now in
+# this central makefile.
+include $(WXDIR)/src/maketwin.env
+
+OBJECTS = $(OBJDIR)/grid.$(OBJSUFF) $(OBJDIR)/grid.$(OBJSUFF)
+
+all: $(OBJDIR) grid$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+ mkdir $(OBJDIR)
+
+grid$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
+ $(CC) $(LDFLAGS) -o grid$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/grid.$(OBJSUFF): grid.$(SRCSUFF)
+ $(CC) -c $(CPPFLAGS) -o $@ grid.$(SRCSUFF)
+
+grid.c: grid.rc
+ $(RESCOMP) $(RCINPUTSWITCH) grid.rc $(RCOUTPUTSWITCH) grid.c $(RESFLAGS)
+
+$(OBJDIR)/grid.$(OBJSUFF): grid.c
+ $(CC) -c $(CPPFLAGS) -o $@ grid.c
+
+#$(OBJDIR)/grid.o: grid.rc
+# $(RESCOMP) $(RCINPUTSWITCH) grid.rc $(RCOUTPUTSWITCH) $(OBJDIR)/grid.o $(RESFLAGS)
+
+clean:
+ rm -f $(OBJECTS) grid$(GUISUFFIX).exe core *.rsc *.res
-#
-# File: Makefile for samples
-# Author: Robert Roebling
-# Created: 1999
-# Updated:
-# Copyright: (c) 1998 Robert Roebling
-#
-# This makefile requires a Unix version of wxWindows
-# to be installed on your system. This is most often
-# done typing "make install" when using the complete
-# sources of wxWindows or by installing the two
-# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
-# under Linux.
-#
+# Purpose: makefile for grid example (Unix)
+# Created: 2000-03-15
CC = gcc
-PROGRAM = test
+PROGRAM = grid
OBJECTS = $(PROGRAM).o
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
-clean:
+clean:
rm -f *.o $(PROGRAM)
-#
-# File: makefile.vc
-# Author: Julian Smart
-# Created: 1999
-# Updated:
-# Copyright: (c) Julian Smart
-#
-# Makefile : Builds sample (VC++, WIN32)
-# Use FINAL=1 argument to nmake to build final version with no debug info.
+# Purpose: makefile for grid example (VC++ 32bit)
+# Created: 2000-03-15
# Set WXDIR for your system
WXDIR = $(WXWIN)
-PROGRAM=test
+PROGRAM=grid
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.vc
-#
-# Makefile for WATCOM
-#
-# Created by Julian Smart, January 1999
-#
-#
+# Purpose: makefile for grid example (Watcom)
+# Created: 2000-03-15
WXDIR = $(%WXWIN)
-PROGRAM = test
+PROGRAM = grid
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.wat
+++ /dev/null
-/*
- * File: test.cpp
- * Purpose: wxGrid test
- * Author: Julian Smart
- * Created: 1995
- * Updated:
- * Copyright: (c) 1995, AIAI, University of Edinburgh
- */
-
-static const char sccsid[] = "%W% %G%";
-
-#ifdef __GNUG__
-#pragma implementation
-#pragma interface
-#endif
-
-// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
-#include "wx/grid.h"
-#include "wx/colordlg.h"
-
-// Define a new application type
-class MyApp: public wxApp
-{ public:
- bool OnInit(void);
-};
-
-
-// Define a new frame type
-class MyFrame: public wxFrame
-{ public:
- wxGrid *grid;
- MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
-
- void ToggleEditable(wxCommandEvent& event);
- void ToggleEditInPlace(wxCommandEvent& event);
- void ToggleRowLabel(wxCommandEvent& event);
- void ToggleColLabel(wxCommandEvent& event);
- void ToggleDividers(wxCommandEvent& event);
- void LeftCell(wxCommandEvent& event);
- void CentreCell(wxCommandEvent& event);
- void RightCell(wxCommandEvent& event);
- void ColourLabelBackground(wxCommandEvent& event);
- void ColourLabelText(wxCommandEvent& event);
- void NormalLabelColouring(wxCommandEvent& event);
- void ColourCellBackground(wxCommandEvent& event);
- void ColourCellText(wxCommandEvent& event);
- void NormalCellColouring(wxCommandEvent& event);
- void Quit(wxCommandEvent& event);
-
- void OnActivate(wxActivateEvent& event);
-
-DECLARE_EVENT_TABLE()
-};
-
-wxBitmap *cellBitmap1 = (wxBitmap *) NULL;
-wxBitmap *cellBitmap2 = (wxBitmap *) NULL;
-
-// ID for the menu quit command
-#define GRID_QUIT 1
-#define GRID_TOGGLE_EDITABLE 2
-#define GRID_TOGGLE_EDITINPLACE 22
-#define GRID_LEFT_CELL 3
-#define GRID_CENTRE_CELL 4
-#define GRID_RIGHT_CELL 5
-#define GRID_TOGGLE_ROW_LABEL 6
-#define GRID_TOGGLE_COL_LABEL 7
-#define GRID_COLOUR_LABEL_BACKGROUND 8
-#define GRID_COLOUR_LABEL_TEXT 9
-#define GRID_NORMAL_LABEL_COLOURING 10
-#define GRID_COLOUR_CELL_BACKGROUND 11
-#define GRID_COLOUR_CELL_TEXT 12
-#define GRID_NORMAL_CELL_COLOURING 13
-#define GRID_TOGGLE_DIVIDERS 14
-
-// Main proc
-
-IMPLEMENT_APP(MyApp)
-
-// `Main program' equivalent, creating windows and returning main app frame
-bool MyApp::OnInit(void)
-{
-#ifdef __WXMSW__
- cellBitmap1 = new wxBitmap("bitmap1");
- cellBitmap2 = new wxBitmap("bitmap2");
-#endif
-
- // Create the main frame window
- MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxGrid Sample", wxPoint(50, 50), wxSize(450, 300));
-
- // Give it an icon
-#ifdef __WXMSW__
- frame->SetIcon(wxIcon("mondrian"));
-#endif
-
- // Make a menubar
- wxMenu *file_menu = new wxMenu;
- file_menu->Append(GRID_QUIT, "E&xit");
-
- wxMenu *settings_menu = new wxMenu;
- settings_menu->Append(GRID_TOGGLE_EDITABLE, "&Toggle editable");
- settings_menu->Append(GRID_TOGGLE_EDITINPLACE, "&Toggle edit in place");
- settings_menu->Append(GRID_TOGGLE_ROW_LABEL, "Toggle ro&w label");
- settings_menu->Append(GRID_TOGGLE_COL_LABEL, "Toggle co&l label");
- settings_menu->Append(GRID_TOGGLE_DIVIDERS, "Toggle ÷rs");
- settings_menu->AppendSeparator();
- settings_menu->Append(GRID_LEFT_CELL, "&Left cell alignment ");
- settings_menu->Append(GRID_CENTRE_CELL, "&Centre cell alignment ");
- settings_menu->Append(GRID_RIGHT_CELL, "&Right cell alignment ");
- settings_menu->AppendSeparator();
- settings_menu->Append(GRID_COLOUR_LABEL_BACKGROUND, "Choose a label &background colour");
- settings_menu->Append(GRID_COLOUR_LABEL_TEXT, "Choose a label fore&ground colour");
- settings_menu->Append(GRID_NORMAL_LABEL_COLOURING, "&Normal label colouring");
- settings_menu->AppendSeparator();
- settings_menu->Append(GRID_COLOUR_CELL_BACKGROUND, "Choo&se a cell &background colour");
- settings_menu->Append(GRID_COLOUR_CELL_TEXT, "Choose &a cell foreground colour");
- settings_menu->Append(GRID_NORMAL_CELL_COLOURING, "N&ormal cell colouring");
-
- wxMenuBar *menu_bar = new wxMenuBar;
- menu_bar->Append(file_menu, "&File");
- menu_bar->Append(settings_menu, "&Settings");
- frame->SetMenuBar(menu_bar);
-
- // Make a grid
- frame->grid = new wxGrid(frame, 0, 0, 400, 400);
-
- frame->grid->CreateGrid(10, 8);
- frame->grid->SetColumnWidth(3, 200);
- frame->grid->SetRowHeight(4, 45);
- frame->grid->SetCellValue("First cell", 0, 0);
- frame->grid->SetCellValue("Another cell", 1, 1);
- frame->grid->SetCellValue("Yet another cell", 2, 2);
- frame->grid->SetCellTextFont(* wxTheFontList->FindOrCreateFont(10, wxROMAN, wxITALIC, wxNORMAL), 0, 0);
- frame->grid->SetCellTextColour(*wxRED, 1, 1);
- frame->grid->SetCellBackgroundColour(*wxCYAN, 2, 2);
- if (cellBitmap1 && cellBitmap2)
- {
- frame->grid->SetCellAlignment(wxCENTRE, 5, 0);
- frame->grid->SetCellAlignment(wxCENTRE, 6, 0);
- frame->grid->SetCellBitmap(cellBitmap1, 5, 0);
- frame->grid->SetCellBitmap(cellBitmap2, 6, 0);
- }
-
- frame->grid->UpdateDimensions();
-
- // Show the frame
- frame->Show(TRUE);
-
- SetTopWindow(frame);
- return TRUE;
-}
-
-// My frame constructor
-MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size):
- wxFrame(frame, -1, title, pos, size)
-{
- grid = (wxGrid*) NULL;
-}
-
-BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(GRID_TOGGLE_EDITABLE, MyFrame::ToggleEditable)
- EVT_MENU(GRID_TOGGLE_EDITINPLACE, MyFrame::ToggleEditInPlace)
- EVT_MENU(GRID_TOGGLE_ROW_LABEL, MyFrame::ToggleRowLabel)
- EVT_MENU(GRID_TOGGLE_COL_LABEL, MyFrame::ToggleColLabel)
- EVT_MENU(GRID_TOGGLE_DIVIDERS, MyFrame::ToggleDividers)
- EVT_MENU(GRID_LEFT_CELL, MyFrame::LeftCell)
- EVT_MENU(GRID_CENTRE_CELL, MyFrame::CentreCell)
- EVT_MENU(GRID_RIGHT_CELL, MyFrame::RightCell)
- EVT_MENU(GRID_COLOUR_LABEL_BACKGROUND, MyFrame::ColourLabelBackground)
- EVT_MENU(GRID_COLOUR_LABEL_TEXT, MyFrame::ColourLabelText)
- EVT_MENU(GRID_NORMAL_LABEL_COLOURING, MyFrame::NormalLabelColouring)
- EVT_MENU(GRID_COLOUR_CELL_BACKGROUND, MyFrame::ColourCellBackground)
- EVT_MENU(GRID_COLOUR_CELL_TEXT, MyFrame::ColourCellText)
- EVT_MENU(GRID_NORMAL_CELL_COLOURING, MyFrame::NormalCellColouring)
- EVT_MENU(GRID_QUIT, MyFrame::Quit)
-END_EVENT_TABLE()
-
-void MyFrame::ToggleEditable(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetEditable(!grid->GetEditable());
- grid->Refresh();
-}
-
-void MyFrame::ToggleEditInPlace(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetEditInPlace(!grid->GetEditInPlace());
- grid->Refresh();
-}
-
-void MyFrame::ToggleRowLabel(wxCommandEvent& WXUNUSED(event))
-{
- if (grid->GetLabelSize(wxVERTICAL) > 0)
- grid->SetLabelSize(wxVERTICAL, 0);
- else
- grid->SetLabelSize(wxVERTICAL, 40);
- grid->Refresh();
-}
-
-void MyFrame::ToggleColLabel(wxCommandEvent& WXUNUSED(event))
-{
- if (grid->GetLabelSize(wxHORIZONTAL) > 0)
- grid->SetLabelSize(wxHORIZONTAL, 0);
- else
- grid->SetLabelSize(wxHORIZONTAL, 20);
- grid->Refresh();
-}
-
-void MyFrame::ToggleDividers(wxCommandEvent& WXUNUSED(event))
-{
- if (!grid->GetDividerPen().Ok())
- grid->SetDividerPen(* wxThePenList->FindOrCreatePen("LIGHT GREY", 1, wxSOLID));
- else
- grid->SetDividerPen(wxNullPen);
- grid->Refresh();
-}
-
-void MyFrame::LeftCell(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetCellAlignment(wxLEFT);
- grid->Refresh();
-}
-
-void MyFrame::CentreCell(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetCellAlignment(wxCENTRE);
- grid->Refresh();
-}
-
-void MyFrame::RightCell(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetCellAlignment(wxRIGHT);
- grid->Refresh();
-}
-
-void MyFrame::ColourLabelBackground(wxCommandEvent& WXUNUSED(event))
-{
- wxColourData data;
- data.SetChooseFull(TRUE);
- wxColourDialog dialog(this, &data);
- if (dialog.ShowModal() != wxID_CANCEL)
- {
- wxColourData retData = dialog.GetColourData();
- wxColour col = retData.GetColour();
- grid->SetLabelBackgroundColour(col);
- grid->Refresh();
- }
-}
-
-void MyFrame::ColourLabelText(wxCommandEvent& WXUNUSED(event))
-{
- wxColourData data;
- data.SetChooseFull(TRUE);
- wxColourDialog dialog(this, &data);
- if (dialog.ShowModal() != wxID_CANCEL)
- {
- wxColourData retData = dialog.GetColourData();
- wxColour col = retData.GetColour();
- grid->SetLabelTextColour(col);
- grid->Refresh();
- }
-}
-
-void MyFrame::NormalLabelColouring(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetLabelBackgroundColour(*wxLIGHT_GREY);
- grid->SetLabelTextColour(*wxBLACK);
- grid->Refresh();
-}
-
-void MyFrame::ColourCellBackground(wxCommandEvent& WXUNUSED(event))
-{
- wxColourData data;
- data.SetChooseFull(TRUE);
- wxColourDialog dialog(this, &data);
- if (dialog.ShowModal() != wxID_CANCEL)
- {
- wxColourData retData = dialog.GetColourData();
- wxColour col = retData.GetColour();
- grid->SetCellBackgroundColour(col);
- grid->Refresh();
- }
-}
-
-void MyFrame::ColourCellText(wxCommandEvent& WXUNUSED(event))
-{
- wxColourData data;
- data.SetChooseFull(TRUE);
- wxColourDialog dialog(this, &data);
- if (dialog.ShowModal() != wxID_CANCEL)
- {
- wxColourData retData = dialog.GetColourData();
- wxColour col = retData.GetColour();
- grid->SetCellTextColour(col);
- grid->Refresh();
- }
-}
-
-void MyFrame::NormalCellColouring(wxCommandEvent& WXUNUSED(event))
-{
- grid->SetCellBackgroundColour(*wxWHITE);
- grid->SetCellTextColour(*wxBLACK);
- grid->Refresh();
-}
-
-void MyFrame::Quit(wxCommandEvent& WXUNUSED(event))
-{
- this->Close(TRUE);
-}
-
-// Ensure that the grid's edit control always has the focus.
-void MyFrame::OnActivate(wxActivateEvent& event)
-{
- if (grid) grid->OnActivate(event.GetActive());
-}
-
+++ /dev/null
-NAME Test
-DESCRIPTION 'wxTableWindow Test'
-EXETYPE WINDOWS
-STUB 'WINSTUB.EXE'
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-HEAPSIZE 1024
-STACKSIZE 16192
+++ /dev/null
-#include "wx/msw/wx.rc"
-
-bitmap1 BITMAP "bitmap1.bmp"
-bitmap2 BITMAP "bitmap2.bmp"
-