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. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
382 lines
13 KiB
OpenEdge ABL
382 lines
13 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 DeleteAllPages();
|
|
bool AddPage(/*wxNotebookPage*/ wxWindow *pPage,
|
|
const wxString& strText,
|
|
bool 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);
|
|
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
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);
|
|
};
|
|
#endif
|
|
|
|
//---------------------------------------------------------------------------
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// $Log$
|
|
// 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
|
|
//
|
|
//
|