Files
wxWidgets/utils/wxPython/src/windows2.i
Robin Dunn 4cd9591aab fixes for GetReturnCode/SetReturnCode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-05-15 00:56:11 +00:00

414 lines
14 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: windows2.i
// Purpose: SWIG definitions of MORE window classes
//
// Author: Robin Dunn
//
// Created: 6/2/98
// RCS-ID: $Id$
// Copyright: (c) 1998 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%module windows2
%{
#include "helpers.h"
#include <wx/grid.h>
#include <wx/notebook.h>
#include <wx/splitter.h>
#ifdef __WXMSW__
#include <wx/msw/taskbar.h>
#endif
%}
//----------------------------------------------------------------------
%include typemaps.i
%include my_typemaps.i
// Import some definitions of other classes, etc.
%import _defs.i
%import misc.i
%import gdi.i
%import windows.i
%import controls.i
%import events.i
%pragma(python) code = "import wx"
//---------------------------------------------------------------------------
enum {
wxGRID_TEXT_CTRL,
wxGRID_HSCROLL,
wxGRID_VSCROLL
};
class wxGridCell {
public:
wxGridCell();
~wxGridCell();
wxString& GetTextValue();
void SetTextValue(const wxString& str);
wxFont& GetFont();
void SetFont(wxFont& f);
wxColour& GetTextColour();
void SetTextColour(const wxColour& colour);
wxColour& GetBackgroundColour();
void SetBackgroundColour(const wxColour& colour);
wxBrush& GetBackgroundBrush();
int GetAlignment();
void SetAlignment(int align);
wxBitmap* GetCellBitmap();
void SetCellBitmap(wxBitmap* bitmap);
};
class wxGrid : public wxPanel {
public:
wxGrid(wxWindow* parent, wxWindowID id,
const wxPoint& pos=wxPyDefaultPosition,
const wxSize& size=wxPyDefaultSize,
long style=0,
char* name="grid");
%pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK)"
void AdjustScrollbars();
bool AppendCols(int n=1, bool updateLabels=TRUE);
bool AppendRows(int n=1, bool updateLabels=TRUE);
void BeginBatch();
bool CellHitTest(int x, int y, int *OUTPUT, int *OUTPUT);
%addmethods {
// TODO: For now we are just ignoring the initial cellValues
// and widths. Add support for loading them from
// Python sequence objects.
bool CreateGrid(int rows, int cols,
//PyObject* cellValues = NULL,
//PyObject* widths = NULL,
short defaultWidth = wxGRID_DEFAULT_CELL_WIDTH,
short defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT) {
return self->CreateGrid(rows, cols, NULL, NULL,
defaultWidth, defaultHeight);
}
}
bool CurrentCellVisible();
bool DeleteCols(int pos=0, int n=1, bool updateLabels=TRUE);
bool DeleteRows(int pos=0, int n=1, bool updateLabels=TRUE);
void EndBatch();
int GetBatchCount();
wxGridCell* GetCell(int row, int col);
int GetCellAlignment(int row, int col);
%name(GetDefCellAlignment)int GetCellAlignment();
wxColour& GetCellBackgroundColour(int row, int col);
%name(GetDefCellBackgroundColour) wxColour& GetCellBackgroundColour();
//wxGridCell *** GetCells();
wxColour& GetCellTextColour(int row, int col);
%name(GetDefCellTextColour)wxColour& GetCellTextColour();
wxFont& GetCellTextFont(int row, int col);
%name(GetDefCellTextFont)wxFont& GetCellTextFont();
wxString& GetCellValue(int row, int col);
int GetCols();
int GetColumnWidth(int col);
wxRect GetCurrentRect();
int GetCursorColumn();
int GetCursorRow();
bool GetEditable();
wxScrollBar * GetHorizScrollBar();
int GetLabelAlignment(int orientation);
wxColour& GetLabelBackgroundColour();
int GetLabelSize(int orientation);
wxColour& GetLabelTextColour();
wxFont& GetLabelTextFont();
wxString& GetLabelValue(int orientation, int pos);
int GetRowHeight(int row);
int GetRows();
int GetScrollPosX();
int GetScrollPosY();
wxTextCtrl* GetTextItem();
wxScrollBar* GetVertScrollBar();
bool InsertCols(int pos=0, int n=1, bool updateLabels=TRUE);
bool InsertRows(int pos=0, int n=1, bool updateLabels=TRUE);
void OnActivate(bool active);
void SetCellAlignment(int alignment, int row, int col);
%name(SetDefCellAlignment)void SetCellAlignment(int alignment);
void SetCellBackgroundColour(const wxColour& colour, int row, int col);
%name(SetDefCellBackgroundColour)
void SetCellBackgroundColour(const wxColour& colour);
void SetCellTextColour(const wxColour& colour, int row, int col);
%name(SetDefCellTextColour)void SetCellTextColour(const wxColour& colour);
void SetCellTextFont(wxFont& font, int row, int col);
%name(SetDefCellTextFont)void SetCellTextFont(wxFont& font);
void SetCellValue(const wxString& val, int row, int col);
void SetColumnWidth(int col, int width);
void SetDividerPen(wxPen& pen);
void SetEditable(bool editable);
void SetGridCursor(int row, int col);
void SetLabelAlignment(int orientation, int alignment);
void SetLabelBackgroundColour(const wxColour& value);
void SetLabelSize(int orientation, int size);
void SetLabelTextColour(const wxColour& value);
void SetLabelTextFont(wxFont& font);
void SetLabelValue(int orientation, const wxString& value, int pos);
void SetRowHeight(int row, int height);
void UpdateDimensions();
};
class wxGridEvent : public wxEvent {
public:
int m_row;
int m_col;
int m_x;
int m_y;
bool m_control;
bool m_shift;
wxGridCell* m_cell;
};
enum {
wxEVT_GRID_SELECT_CELL,
wxEVT_GRID_CREATE_CELL,
wxEVT_GRID_CHANGE_LABELS,
wxEVT_GRID_CHANGE_SEL_LABEL,
wxEVT_GRID_CELL_CHANGE,
wxEVT_GRID_CELL_LCLICK,
wxEVT_GRID_CELL_RCLICK,
wxEVT_GRID_LABEL_LCLICK,
wxEVT_GRID_LABEL_RCLICK,
};
//---------------------------------------------------------------------------
class wxNotebookEvent : public wxCommandEvent {
public:
int GetSelection();
int GetOldSelection();
};
class wxNotebook : public wxControl {
public:
wxNotebook(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxPyDefaultPosition,
const wxSize& size = wxPyDefaultSize,
long style = 0,
char* name = "notebook");
%pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
int GetPageCount();
int SetSelection(int nPage);
void AdvanceSelection(bool bForward = TRUE);
int GetSelection();
bool SetPageText(int nPage, const wxString& strText);
wxString GetPageText(int nPage) const;
void SetImageList(wxImageList* imageList);
wxImageList* GetImageList();
int GetPageImage(int nPage);
bool SetPageImage(int nPage, int nImage);
int GetRowCount();
// LINK ERROR: void SetPageSize(const wxSize& size);
// LINK ERROR: void SetPadding(const wxSize& padding);
bool DeletePage(int nPage);
bool RemovePage(int nPage);
bool DeleteAllPages();
bool AddPage(/*wxNotebookPage*/ wxWindow *pPage,
const wxString& strText,
int bSelect = FALSE,
int imageId = -1);
#ifdef __WXMSW__
bool InsertPage(int nPage,
/*wxNotebookPage*/ wxWindow *pPage,
const wxString& strText,
bool bSelect = FALSE,
int imageId = -1);
#endif
wxNotebookPage *GetPage(int nPage);
%addmethods {
void ResizeChildren() {
wxSizeEvent evt(self->GetClientSize());
self->GetEventHandler()->ProcessEvent(evt);
}
}
};
//---------------------------------------------------------------------------
class wxSplitterWindow : public wxWindow {
public:
wxSplitterWindow(wxWindow* parent, wxWindowID id,
const wxPoint& point = wxPyDefaultPosition,
const wxSize& size = wxPyDefaultSize,
long style=wxSP_3D|wxCLIP_CHILDREN,
char* name = "splitterWindow");
%pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
int GetBorderSize();
int GetMinimumPaneSize();
int GetSashPosition();
int GetSashSize();
int GetSplitMode();
wxWindow* GetWindow1();
wxWindow* GetWindow2();
void Initialize(wxWindow* window);
bool IsSplit();
// TODO: How to handle callbacks that don't come from
// event system???
//
//void OnDoubleClickSash(int x, int y);
//bool OnSashPositionChange(int newSashPosition);
//void OnUnsplit(wxWindow* removed);
void SetBorderSize(int width);
void SetSashPosition(int position, int redraw = TRUE);
void SetSashSize(int width);
void SetMinimumPaneSize(int paneSize);
void SetSplitMode(int mode);
bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
bool Unsplit(wxWindow* toRemove = NULL);
};
//---------------------------------------------------------------------------
#ifdef __WXMSW__
enum {
wxEVT_TASKBAR_MOVE,
wxEVT_TASKBAR_LEFT_DOWN,
wxEVT_TASKBAR_LEFT_UP,
wxEVT_TASKBAR_RIGHT_DOWN,
wxEVT_TASKBAR_RIGHT_UP,
wxEVT_TASKBAR_LEFT_DCLICK,
wxEVT_TASKBAR_RIGHT_DCLICK
};
class wxTaskBarIcon : public wxEvtHandler {
public:
wxTaskBarIcon();
~wxTaskBarIcon();
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK)"
%pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK)"
bool SetIcon(const wxIcon& icon, const char* tooltip = "");
bool RemoveIcon(void);
bool PopupMenu(wxMenu *menu);
};
#endif
//---------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////
//
// $Log$
// Revision 1.11 1999/05/15 00:56:05 RD
// fixes for GetReturnCode/SetReturnCode
//
// Revision 1.10 1999/04/30 03:29:19 RD
//
// wxPython 2.0b9, first phase (win32)
// Added gobs of stuff, see wxPython/README.txt for details
//
// Revision 1.9.4.1 1999/03/16 06:04:05 RD
//
// wxPython 2.0b7
//
// Revision 1.9 1999/02/25 07:08:36 RD
//
// wxPython version 2.0b5
//
// Revision 1.8 1998/12/17 18:05:53 RD
//
// wxPython 0.5.2
// Minor fixes and SWIG code generation for RR's changes. MSW and GTK
// versions are much closer now!
//
// Revision 1.7 1998/12/15 20:41:25 RD
// Changed the import semantics from "from wxPython import *" to "from
// wxPython.wx import *" This is for people who are worried about
// namespace pollution, they can use "from wxPython import wx" and then
// prefix all the wxPython identifiers with "wx."
//
// Added wxTaskbarIcon for wxMSW.
//
// Made the events work for wxGrid.
//
// Added wxConfig.
//
// Added wxMiniFrame for wxGTK, (untested.)
//
// Changed many of the args and return values that were pointers to gdi
// objects to references to reflect changes in the wxWindows API.
//
// Other assorted fixes and additions.
//
// Revision 1.6 1998/11/25 08:45:28 RD
//
// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
// Added events for wxGrid
// Other various fixes and additions
//
// Revision 1.5 1998/11/03 09:21:57 RD
// fixed a typo
//
// Revision 1.4 1998/10/02 06:40:43 RD
//
// Version 0.4 of wxPython for MSW.
//
// Revision 1.3 1998/08/18 19:48:20 RD
// more wxGTK compatibility things.
//
// It builds now but there are serious runtime problems...
//
// Revision 1.2 1998/08/15 07:36:50 RD
// - Moved the header in the .i files out of the code that gets put into
// the .cpp files. It caused CVS conflicts because of the RCS ID being
// different each time.
//
// - A few minor fixes.
//
// Revision 1.1 1998/08/09 08:25:52 RD
// Initial version
//
//