generic. This is the header that should be included by 3rd party stuff that is embedding wxPython or making a new wxPython extension module. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
276 lines
8.2 KiB
OpenEdge ABL
276 lines
8.2 KiB
OpenEdge ABL
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: calendar.i
|
|
// Purpose: SWIG definitions for the wxCalendarCtrl
|
|
//
|
|
// Author: Robin Dunn
|
|
//
|
|
// Created: 23-May-2000
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 2000 by Total Control Software
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
%module calendar
|
|
|
|
|
|
%{
|
|
#include "wxPython.h"
|
|
#include <wx/calctrl.h>
|
|
%}
|
|
|
|
//----------------------------------------------------------------------
|
|
|
|
%include typemaps.i
|
|
%include my_typemaps.i
|
|
|
|
// Import some definitions of other classes, etc.
|
|
%import _defs.i
|
|
%import misc.i
|
|
%import windows.i
|
|
%import controls.i
|
|
%import events.i
|
|
%import utils.i
|
|
|
|
%pragma(python) code = "import wx"
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
enum {
|
|
wxCAL_SUNDAY_FIRST,
|
|
wxCAL_MONDAY_FIRST,
|
|
wxCAL_SHOW_HOLIDAYS,
|
|
wxCAL_NO_YEAR_CHANGE,
|
|
wxCAL_NO_MONTH_CHANGE,
|
|
wxCAL_SEQUENTIAL_MONTH_SELECTION,
|
|
wxCAL_SHOW_SURROUNDING_WEEKS,
|
|
};
|
|
|
|
|
|
enum wxCalendarHitTestResult
|
|
{
|
|
wxCAL_HITTEST_NOWHERE, // outside of anything
|
|
wxCAL_HITTEST_HEADER, // on the header (weekdays)
|
|
wxCAL_HITTEST_DAY, // on a day in the calendar
|
|
wxCAL_HITTEST_INCMONTH,
|
|
wxCAL_HITTEST_DECMONTH,
|
|
wxCAL_HITTEST_SURROUNDING_WEEK
|
|
};
|
|
|
|
// border types for a date
|
|
enum wxCalendarDateBorder
|
|
{
|
|
wxCAL_BORDER_NONE, // no border (default)
|
|
wxCAL_BORDER_SQUARE, // a rectangular border
|
|
wxCAL_BORDER_ROUND // a round border
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
class wxCalendarDateAttr
|
|
{
|
|
public:
|
|
// ctors
|
|
wxCalendarDateAttr(const wxColour& colText,
|
|
const wxColour& colBack = wxNullColour,
|
|
const wxColour& colBorder = wxNullColour,
|
|
const wxFont& font = wxNullFont,
|
|
wxCalendarDateBorder border = wxCAL_BORDER_NONE);
|
|
|
|
%name(wxCalendarDateAttrBorder)
|
|
wxCalendarDateAttr(wxCalendarDateBorder border,
|
|
const wxColour& colBorder = wxNullColour);
|
|
|
|
// setters
|
|
void SetTextColour(const wxColour& colText);
|
|
void SetBackgroundColour(const wxColour& colBack);
|
|
void SetBorderColour(const wxColour& col);
|
|
void SetFont(const wxFont& font);
|
|
void SetBorder(wxCalendarDateBorder border);
|
|
void SetHoliday(bool holiday);
|
|
|
|
// accessors
|
|
bool HasTextColour() const;
|
|
bool HasBackgroundColour() const;
|
|
bool HasBorderColour() const;
|
|
bool HasFont() const;
|
|
bool HasBorder() const;
|
|
|
|
bool IsHoliday() const;
|
|
|
|
wxColour GetTextColour() const;
|
|
wxColour GetBackgroundColour() const;
|
|
wxColour GetBorderColour() const;
|
|
wxFont GetFont() const;
|
|
wxCalendarDateBorder GetBorder() const;
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class wxCalendarCtrl;
|
|
|
|
class wxCalendarEvent : public wxCommandEvent
|
|
{
|
|
public:
|
|
wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type);
|
|
|
|
const wxDateTime& GetDate() const;
|
|
wxDateTime::WeekDay GetWeekDay() const;
|
|
|
|
};
|
|
|
|
enum {
|
|
wxEVT_CALENDAR_DOUBLECLICKED,
|
|
wxEVT_CALENDAR_SEL_CHANGED,
|
|
wxEVT_CALENDAR_DAY_CHANGED,
|
|
wxEVT_CALENDAR_MONTH_CHANGED,
|
|
wxEVT_CALENDAR_YEAR_CHANGED,
|
|
wxEVT_CALENDAR_WEEKDAY_CLICKED,
|
|
};
|
|
|
|
%pragma(python) code = "
|
|
def EVT_CALENDAR(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_DOUBLECLICKED, fn)
|
|
|
|
def EVT_CALENDAR_SEL_CHANGED(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_SEL_CHANGED, fn)
|
|
|
|
def EVT_CALENDAR_DAY(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_DAY_CHANGED, fn)
|
|
|
|
def EVT_CALENDAR_MONTH(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_MONTH_CHANGED, fn)
|
|
|
|
def EVT_CALENDAR_YEAR(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_YEAR_CHANGED, fn)
|
|
|
|
def EVT_CALENDAR_WEEKDAY_CLICKED(win, id, fn):
|
|
win.Connect(id, -1, wxEVT_CALENDAR_WEEKDAY_CLICKED, fn)
|
|
|
|
"
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%{
|
|
// Put some wx default wxChar* values into wxStrings.
|
|
DECLARE_DEF_STRING(CalendarNameStr);
|
|
%}
|
|
|
|
class wxCalendarCtrl : public wxControl
|
|
{
|
|
public:
|
|
// construction
|
|
wxCalendarCtrl(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCAL_SHOW_HOLIDAYS | wxWANTS_CHARS,
|
|
const wxString& name = wxPyCalendarNameStr);
|
|
%name(wxPreCalendarCtrl)wxCalendarCtrl();
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCAL_SHOW_HOLIDAYS | wxWANTS_CHARS,
|
|
const wxString& name = wxPyCalendarNameStr);
|
|
|
|
%pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
|
|
%pragma(python) addtomethod = "wxPreCalendarCtrl:val._setOORInfo(val)"
|
|
|
|
// set/get the current date
|
|
// ------------------------
|
|
|
|
void SetDate(const wxDateTime& date);
|
|
const wxDateTime& GetDate() const;
|
|
|
|
// set/get the range in which selection can occur
|
|
// ---------------------------------------------
|
|
|
|
bool SetLowerDateLimit(const wxDateTime& date = wxDefaultDateTime);
|
|
const wxDateTime& GetLowerDateLimit() const;
|
|
bool SetUpperDateLimit(const wxDateTime& date = wxDefaultDateTime);
|
|
const wxDateTime& GetUpperDateLimit() const;
|
|
|
|
bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
|
|
const wxDateTime& upperdate = wxDefaultDateTime);
|
|
|
|
|
|
// calendar mode
|
|
// -------------
|
|
|
|
// some calendar styles can't be changed after the control creation by
|
|
// just using SetWindowStyle() and Refresh() and the functions below
|
|
// should be used instead for them
|
|
|
|
// corresponds to wxCAL_NO_YEAR_CHANGE bit
|
|
void EnableYearChange(bool enable = TRUE);
|
|
|
|
// corresponds to wxCAL_NO_MONTH_CHANGE bit
|
|
void EnableMonthChange(bool enable = TRUE);
|
|
|
|
// corresponds to wxCAL_SHOW_HOLIDAYS bit
|
|
void EnableHolidayDisplay(bool display = TRUE);
|
|
|
|
// customization
|
|
// -------------
|
|
|
|
// header colours are used for painting the weekdays at the top
|
|
void SetHeaderColours(const wxColour& colFg, const wxColour& colBg);
|
|
wxColour GetHeaderColourFg() const;
|
|
wxColour GetHeaderColourBg() const;
|
|
|
|
// highlight colour is used for the currently selected date
|
|
void SetHighlightColours(const wxColour& colFg, const wxColour& colBg);
|
|
wxColour GetHighlightColourFg() const;
|
|
wxColour GetHighlightColourBg() const;
|
|
|
|
// holiday colour is used for the holidays (if style & wxCAL_SHOW_HOLIDAYS)
|
|
void SetHolidayColours(const wxColour& colFg, const wxColour& colBg);
|
|
wxColour GetHolidayColourFg() const;
|
|
wxColour GetHolidayColourBg() const;
|
|
|
|
// an item without custom attributes is drawn with the default colours and
|
|
// font and without border, setting custom attributes allows to modify this
|
|
//
|
|
// the day parameter should be in 1..31 range, for days 29, 30, 31 the
|
|
// corresponding attribute is just unused if there is no such day in the
|
|
// current month
|
|
|
|
wxCalendarDateAttr *GetAttr(size_t day) const;
|
|
void SetAttr(size_t day, wxCalendarDateAttr *attr);
|
|
|
|
void SetHoliday(size_t day);
|
|
|
|
void ResetAttr(size_t day);
|
|
|
|
// returns one of wxCAL_HITTEST_XXX constants and fills either date or wd
|
|
// with the corresponding value (none for NOWHERE, the date for DAY and wd
|
|
// for HEADER)
|
|
wxCalendarHitTestResult HitTest(const wxPoint& pos,
|
|
wxDateTime *date = NULL,
|
|
wxDateTime::WeekDay *wd = NULL);
|
|
|
|
|
|
bool Enable(bool enable = TRUE);
|
|
bool Show(bool show = TRUE);
|
|
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%init %{
|
|
wxClassInfo::CleanUpClasses();
|
|
wxClassInfo::InitializeClasses();
|
|
%}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%pragma(python) include="_calextras.py";
|
|
|
|
//---------------------------------------------------------------------------
|
|
|