X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/093d3ff1f77c9ff8c1b66ebf43464429c583b044..5f57b149e60ac95a47d45409ae3a9c9acaee04be:/wxPython/src/msw/_controls.py diff --git a/wxPython/src/msw/_controls.py b/wxPython/src/msw/_controls.py index cae7c5b585..16c781f41a 100644 --- a/wxPython/src/msw/_controls.py +++ b/wxPython/src/msw/_controls.py @@ -502,31 +502,6 @@ class Choice(_core.ControlWithItems): """ return _controls_.Choice_Create(*args, **kwargs) - def SetSelection(*args, **kwargs): - """ - SetSelection(self, int n) - - Select the n'th item (zero based) in the list. - """ - return _controls_.Choice_SetSelection(*args, **kwargs) - - def SetStringSelection(*args, **kwargs): - """ - SetStringSelection(self, String string) -> bool - - Select the item with the specifed string - """ - return _controls_.Choice_SetStringSelection(*args, **kwargs) - - def SetString(*args, **kwargs): - """ - SetString(self, int n, String string) - - Set the label for the n'th item (zero based) in the list. - """ - return _controls_.Choice_SetString(*args, **kwargs) - - Select = SetSelection def GetClassDefaultAttributes(*args, **kwargs): """ GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes @@ -1385,7 +1360,8 @@ class ListBox(_core.ControlWithItems): """ Select(self, int n) - Sets the item at index 'n' to be the selected item. + This is the same as `SetSelection` and exists only because it is + slightly more natural for controls which support multiple selection. """ return _controls_.ListBox_Select(*args, **kwargs) @@ -1574,9 +1550,12 @@ TE_PASSWORD = _controls_.TE_PASSWORD TE_AUTO_URL = _controls_.TE_AUTO_URL TE_NOHIDESEL = _controls_.TE_NOHIDESEL TE_DONTWRAP = _controls_.TE_DONTWRAP -TE_LINEWRAP = _controls_.TE_LINEWRAP +TE_CHARWRAP = _controls_.TE_CHARWRAP TE_WORDWRAP = _controls_.TE_WORDWRAP +TE_BESTWRAP = _controls_.TE_BESTWRAP +TE_LINEWRAP = _controls_.TE_LINEWRAP TE_RICH2 = _controls_.TE_RICH2 +TE_CAPITALIZE = _controls_.TE_CAPITALIZE TEXT_ALIGNMENT_DEFAULT = _controls_.TEXT_ALIGNMENT_DEFAULT TEXT_ALIGNMENT_LEFT = _controls_.TEXT_ALIGNMENT_LEFT TEXT_ALIGNMENT_CENTRE = _controls_.TEXT_ALIGNMENT_CENTRE @@ -1600,6 +1579,8 @@ TE_HT_BEFORE = _controls_.TE_HT_BEFORE TE_HT_ON_TEXT = _controls_.TE_HT_ON_TEXT TE_HT_BELOW = _controls_.TE_HT_BELOW TE_HT_BEYOND = _controls_.TE_HT_BEYOND +OutOfRangeTextCoord = _controls_.OutOfRangeTextCoord +InvalidTextCoord = _controls_.InvalidTextCoord class TextAttr(object): """Proxy of C++ TextAttr class""" def __repr__(self): @@ -1897,7 +1878,7 @@ class TextCtrl(_core.Control): def HitTest(*args, **kwargs): """ - HitTest(Point pt) -> (result, row, col) + HitTest(Point pt) -> (result, col, row) Find the row, col coresponding to the character at the point given in pixels. NB: pt is in device coords but is not adjusted for the client @@ -2672,6 +2653,17 @@ def RadioButton_GetClassDefaultAttributes(*args, **kwargs): #--------------------------------------------------------------------------- +SL_HORIZONTAL = _controls_.SL_HORIZONTAL +SL_VERTICAL = _controls_.SL_VERTICAL +SL_AUTOTICKS = _controls_.SL_AUTOTICKS +SL_LABELS = _controls_.SL_LABELS +SL_LEFT = _controls_.SL_LEFT +SL_TOP = _controls_.SL_TOP +SL_RIGHT = _controls_.SL_RIGHT +SL_BOTTOM = _controls_.SL_BOTTOM +SL_BOTH = _controls_.SL_BOTH +SL_SELRANGE = _controls_.SL_SELRANGE +SL_INVERSE = _controls_.SL_INVERSE class Slider(_core.Control): """Proxy of C++ Slider class""" def __repr__(self): @@ -3047,7 +3039,7 @@ class BookCtrlBasePtr(BookCtrlBase): if not hasattr(self,"thisown"): self.thisown = 0 self.__class__ = BookCtrlBase _controls_.BookCtrlBase_swigregister(BookCtrlBasePtr) -NOTEBOOK_NAME = cvar.NOTEBOOK_NAME +NotebookNameStr = cvar.NotebookNameStr def BookCtrlBase_GetClassDefaultAttributes(*args, **kwargs): """ @@ -3111,6 +3103,7 @@ NB_LEFT = _controls_.NB_LEFT NB_RIGHT = _controls_.NB_RIGHT NB_BOTTOM = _controls_.NB_BOTTOM NB_MULTILINE = _controls_.NB_MULTILINE +NB_NOPAGETHEME = _controls_.NB_NOPAGETHEME NB_HITTEST_NOWHERE = _controls_.NB_HITTEST_NOWHERE NB_HITTEST_ONICON = _controls_.NB_HITTEST_ONICON NB_HITTEST_ONLABEL = _controls_.NB_HITTEST_ONLABEL @@ -3122,7 +3115,7 @@ class Notebook(BookCtrlBase): def __init__(self, *args, **kwargs): """ __init__(self, Window parent, int id=-1, Point pos=DefaultPosition, - Size size=DefaultSize, long style=0, String name=NOTEBOOK_NAME) -> Notebook + Size size=DefaultSize, long style=0, String name=NotebookNameStr) -> Notebook """ newobj = _controls_.new_Notebook(*args, **kwargs) self.this = newobj.this @@ -3133,7 +3126,7 @@ class Notebook(BookCtrlBase): def Create(*args, **kwargs): """ Create(self, Window parent, int id=-1, Point pos=DefaultPosition, - Size size=DefaultSize, long style=0, String name=NOTEBOOK_NAME) -> bool + Size size=DefaultSize, long style=0, String name=NotebookNameStr) -> bool """ return _controls_.Notebook_Create(*args, **kwargs) @@ -3162,6 +3155,10 @@ class Notebook(BookCtrlBase): """CalcSizeFromPage(self, Size sizePage) -> Size""" return _controls_.Notebook_CalcSizeFromPage(*args, **kwargs) + def GetThemeBackgroundColour(*args, **kwargs): + """GetThemeBackgroundColour(self) -> Colour""" + return _controls_.Notebook_GetThemeBackgroundColour(*args, **kwargs) + def GetClassDefaultAttributes(*args, **kwargs): """ GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes @@ -3243,7 +3240,7 @@ EVT_NOTEBOOK_PAGE_CHANGING = wx.PyEventBinder( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANG class NotebookPage(wx.Panel): """ There is an old (and apparently unsolvable) bug when placing a - window with a nonstandard background colour in a wxNotebook on + window with a nonstandard background colour in a wx.Notebook on wxGTK, as the notbooks's background colour would always be used when the window is refreshed. The solution is to place a panel in the notbook and the coloured window on the panel, sized to cover @@ -3256,7 +3253,7 @@ class NotebookPage(wx.Panel): style=wx.TAB_TRAVERSAL, name="panel"): wx.Panel.__init__(self, parent, id, pos, size, style, name) self.child = None - EVT_SIZE(self, self.OnSize) + self.Bind(wx.EVT_SIZE, self.OnSize) def OnSize(self, evt): if self.child is None: @@ -3512,8 +3509,8 @@ class NotebookSizerPtr(NotebookSizer): self.__class__ = NotebookSizer _controls_.NotebookSizer_swigregister(NotebookSizerPtr) -NotebookSizer = wx._deprecated(NotebookSizer, "NotebookSizer is no longer needed.") -BookCtrlSizer = wx._deprecated(BookCtrlSizer, "BookCtrlSizer is no longer needed.") +NotebookSizer.__init__ = wx._deprecated(NotebookSizer.__init__, "NotebookSizer is no longer needed.") +BookCtrlSizer.__init__ = wx._deprecated(BookCtrlSizer.__init__, "BookCtrlSizer is no longer needed.") #--------------------------------------------------------------------------- TOOL_STYLE_BUTTON = _controls_.TOOL_STYLE_BUTTON @@ -4440,8 +4437,6 @@ wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = _controls_.wxEVT_COMMAND_LIST_BEGIN_LABEL_ wxEVT_COMMAND_LIST_END_LABEL_EDIT = _controls_.wxEVT_COMMAND_LIST_END_LABEL_EDIT wxEVT_COMMAND_LIST_DELETE_ITEM = _controls_.wxEVT_COMMAND_LIST_DELETE_ITEM wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = _controls_.wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS -wxEVT_COMMAND_LIST_GET_INFO = _controls_.wxEVT_COMMAND_LIST_GET_INFO -wxEVT_COMMAND_LIST_SET_INFO = _controls_.wxEVT_COMMAND_LIST_SET_INFO wxEVT_COMMAND_LIST_ITEM_SELECTED = _controls_.wxEVT_COMMAND_LIST_ITEM_SELECTED wxEVT_COMMAND_LIST_ITEM_DESELECTED = _controls_.wxEVT_COMMAND_LIST_ITEM_DESELECTED wxEVT_COMMAND_LIST_KEY_DOWN = _controls_.wxEVT_COMMAND_LIST_KEY_DOWN @@ -4456,6 +4451,8 @@ wxEVT_COMMAND_LIST_COL_BEGIN_DRAG = _controls_.wxEVT_COMMAND_LIST_COL_BEGIN_DRAG wxEVT_COMMAND_LIST_COL_DRAGGING = _controls_.wxEVT_COMMAND_LIST_COL_DRAGGING wxEVT_COMMAND_LIST_COL_END_DRAG = _controls_.wxEVT_COMMAND_LIST_COL_END_DRAG wxEVT_COMMAND_LIST_ITEM_FOCUSED = _controls_.wxEVT_COMMAND_LIST_ITEM_FOCUSED +wxEVT_COMMAND_LIST_GET_INFO = _controls_.wxEVT_COMMAND_LIST_GET_INFO +wxEVT_COMMAND_LIST_SET_INFO = _controls_.wxEVT_COMMAND_LIST_SET_INFO EVT_LIST_BEGIN_DRAG = wx.PyEventBinder(wxEVT_COMMAND_LIST_BEGIN_DRAG , 1) EVT_LIST_BEGIN_RDRAG = wx.PyEventBinder(wxEVT_COMMAND_LIST_BEGIN_RDRAG , 1) EVT_LIST_BEGIN_LABEL_EDIT = wx.PyEventBinder(wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT , 1) @@ -4758,7 +4755,7 @@ class ListCtrl(_core.Control): HitTest(Point point) -> (item, where) Determines which item (if any) is at the specified point, giving - in the second return value (see wxLIST_HITTEST_... flags.) + in the second return value (see wx.LIST_HITTEST flags.) """ return _controls_.ListCtrl_HitTest(*args, **kwargs) @@ -4840,7 +4837,7 @@ class ListCtrl(_core.Control): def IsSelected(self, idx): '''return True if the item is selected''' - return self.GetItemState(idx, wx.LIST_STATE_SELECTED) != 0 + return (self.GetItemState(idx, wx.LIST_STATE_SELECTED) & wx.LIST_STATE_SELECTED) != 0 def SetColumnImage(self, col, image): item = self.GetColumn(col) @@ -5142,6 +5139,7 @@ wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK = _controls_.wxEVT_COMMAND_TREE_ITEM_MIDDLE wxEVT_COMMAND_TREE_END_DRAG = _controls_.wxEVT_COMMAND_TREE_END_DRAG wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK = _controls_.wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP = _controls_.wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP +wxEVT_COMMAND_TREE_ITEM_MENU = _controls_.wxEVT_COMMAND_TREE_ITEM_MENU EVT_TREE_BEGIN_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_DRAG , 1) EVT_TREE_BEGIN_RDRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_RDRAG , 1) EVT_TREE_BEGIN_LABEL_EDIT = wx.PyEventBinder(wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT , 1) @@ -5162,6 +5160,7 @@ EVT_TREE_ITEM_MIDDLE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLI EVT_TREE_END_DRAG = wx.PyEventBinder(wxEVT_COMMAND_TREE_END_DRAG , 1) EVT_TREE_STATE_IMAGE_CLICK = wx.PyEventBinder(wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 1) EVT_TREE_ITEM_GETTOOLTIP = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 1) +EVT_COMMAND_TREE_ITEM_MENU = wx.PyEventBinder(wxEVT_COMMAND_TREE_ITEM_MENU, 1) class TreeEvent(_core.NotifyEvent): """Proxy of C++ TreeEvent class""" @@ -5229,6 +5228,10 @@ class TreeEvent(_core.NotifyEvent): """SetToolTip(self, String toolTip)""" return _controls_.TreeEvent_SetToolTip(*args, **kwargs) + def GetToolTip(*args, **kwargs): + """GetToolTip(self) -> String""" + return _controls_.TreeEvent_GetToolTip(*args, **kwargs) + class TreeEventPtr(TreeEvent): def __init__(self, this): @@ -6372,4 +6375,124 @@ def DragListItem(*args, **kwargs): val.thisown = 1 return val +#--------------------------------------------------------------------------- + +DP_DEFAULT = _controls_.DP_DEFAULT +DP_SPIN = _controls_.DP_SPIN +DP_DROPDOWN = _controls_.DP_DROPDOWN +DP_SHOWCENTURY = _controls_.DP_SHOWCENTURY +DP_ALLOWNONE = _controls_.DP_ALLOWNONE +class DatePickerCtrl(_core.Control): + """ + This control allows the user to select a date. Unlike + `wx.calendar.CalendarCtrl`, which is a relatively big control, + `wx.DatePickerCtrl` is implemented as a small window showing the + currently selected date. The control can be edited using the keyboard, + and can also display a popup window for more user-friendly date + selection, depending on the styles used and the platform. + """ + def __repr__(self): + return "<%s.%s; proxy of C++ wxDatePickerCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,) + def __init__(self, *args, **kwargs): + """ + __init__(self, Window parent, int id=-1, DateTime dt=wxDefaultDateTime, + Point pos=DefaultPosition, Size size=DefaultSize, + long style=wxDP_DEFAULT|wxDP_SHOWCENTURY, + Validator validator=DefaultValidator, + String name=DatePickerCtrlNameStr) -> DatePickerCtrl + + Create a new DatePickerCtrl. + """ + newobj = _controls_.new_DatePickerCtrl(*args, **kwargs) + self.this = newobj.this + self.thisown = 1 + del newobj.thisown + self._setOORInfo(self) + + def Create(*args, **kwargs): + """ + Create(self, Window parent, int id=-1, DateTime dt=wxDefaultDateTime, + Point pos=DefaultPosition, Size size=DefaultSize, + long style=wxDP_DEFAULT|wxDP_SHOWCENTURY, + Validator validator=DefaultValidator, + String name=DatePickerCtrlNameStr) -> bool + + Create the GUI parts of the DatePickerCtrl, for use in 2-phase + creation. + """ + return _controls_.DatePickerCtrl_Create(*args, **kwargs) + + def SetValue(*args, **kwargs): + """ + SetValue(self, DateTime dt) + + Changes the current value of the control. The date should be valid and + included in the currently selected range, if any. + + Calling this method does not result in a date change event. + """ + return _controls_.DatePickerCtrl_SetValue(*args, **kwargs) + + def GetValue(*args, **kwargs): + """ + GetValue(self) -> DateTime + + Returns the currently selected date. If there is no selection or the + selection is outside of the current range, an invalid `wx.DateTime` + object is returned. + """ + return _controls_.DatePickerCtrl_GetValue(*args, **kwargs) + + def SetRange(*args, **kwargs): + """ + SetRange(self, DateTime dt1, DateTime dt2) + + Sets the valid range for the date selection. If dt1 is valid, it + becomes the earliest date (inclusive) accepted by the control. If dt2 + is valid, it becomes the latest possible date. + + If the current value of the control is outside of the newly set range + bounds, the behaviour is undefined. + """ + return _controls_.DatePickerCtrl_SetRange(*args, **kwargs) + + def GetLowerLimit(*args, **kwargs): + """ + GetLowerLimit(self) -> DateTime + + Get the lower limit of the valid range for the date selection, if any. + If there is no range or there is no lower limit, then the + `wx.DateTime` value returned will be invalid. + """ + return _controls_.DatePickerCtrl_GetLowerLimit(*args, **kwargs) + + def GetUpperLimit(*args, **kwargs): + """ + GetUpperLimit(self) -> DateTime + + Get the upper limit of the valid range for the date selection, if any. + If there is no range or there is no upper limit, then the + `wx.DateTime` value returned will be invalid. + """ + return _controls_.DatePickerCtrl_GetUpperLimit(*args, **kwargs) + + +class DatePickerCtrlPtr(DatePickerCtrl): + def __init__(self, this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = DatePickerCtrl +_controls_.DatePickerCtrl_swigregister(DatePickerCtrlPtr) +DatePickerCtrlNameStr = cvar.DatePickerCtrlNameStr + +def PreDatePickerCtrl(*args, **kwargs): + """ + PreDatePickerCtrl() -> DatePickerCtrl + + Precreate a DatePickerCtrl for use in 2-phase creation. + """ + val = _controls_.new_PreDatePickerCtrl(*args, **kwargs) + val.thisown = 1 + return val +