]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_accel.i
fixed wxString iterators linked list corruption
[wxWidgets.git] / wxPython / src / _accel.i
index 28e6c5bad234c558b2939264c24810d468b75076..cc20204c428198687a6deead1e7ae34e20e350f9 100644 (file)
 //---------------------------------------------------------------------------
 %newgroup;
 
+enum {
+    wxACCEL_ALT,
+    wxACCEL_CTRL,
+    wxACCEL_SHIFT,
+    wxACCEL_NORMAL,
+    wxACCEL_CMD,
+};
+
+DocStr(wxAcceleratorEntry,
+"A class used to define items in an `wx.AcceleratorTable`.  wxPython
+programs can choose to use wx.AcceleratorEntry objects, but using a
+list of 3-tuple of integers (flags, keyCode, cmdID) usually works just
+as well.  See `__init__` for details of the tuple values.
+
+:see: `wx.AcceleratorTable`", "");
 
 class wxAcceleratorEntry {
 public:
-    wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0, wxMenuItem *item = NULL);
+    DocCtorStr(
+        wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmdID = 0/*, wxMenuItem *menuitem = NULL*/),
+        "Construct a wx.AcceleratorEntry.",
+        "
+    :param flags: A bitmask of wx.ACCEL_ALT, wx.ACCEL_SHIFT,
+                wx.ACCEL_CTRL, wx.ACCEL_CMD,  or wx.ACCEL_NORMAL
+                used to specify which modifier keys are held down.
+    :param keyCode: The keycode to be detected
+    :param cmdID: The menu or control command ID to use for the
+                accellerator event.
+");
     ~wxAcceleratorEntry();
 
-    void Set(int flags, int keyCode, int cmd, wxMenuItem *item = NULL);
+    DocDeclStr(
+        void , Set(int flags, int keyCode, int cmd/*, wxMenuItem *menuItem = NULL*/),
+        "(Re)set the attributes of a wx.AcceleratorEntry.
+:see `__init__`", "");
+    
+
+//     void SetMenuItem(wxMenuItem *item);
+//     wxMenuItem *GetMenuItem() const;
+
+    %newobject Create;
+    DocDeclStr(
+        static wxAcceleratorEntry *, Create(const wxString& str),
+        "Create accelerator corresponding to the specified string, or None if
+it coulnd't be parsed.", "");
+    
+    DocDeclStr(
+        int , GetFlags(),
+        "Get the AcceleratorEntry's flags.", "");
+    
+    DocDeclStr(
+        int , GetKeyCode(),
+        "Get the AcceleratorEntry's keycode.", "");
+    
+    DocDeclStr(
+        int , GetCommand(),
+        "Get the AcceleratorEntry's command ID.", "");
+    
+    DocDeclStr(
+        bool , IsOk() const,
+        "", "");
+    
+    
+    DocDeclStr(
+        wxString , ToString() const,
+        "Returns a string representation for the this accelerator.  The string
+is formatted using the <flags>-<keycode> format where <flags> maybe a
+hyphen-separed list of \"shift|alt|ctrl\"
+", "");
+    
+
+    DocDeclStr(
+        bool , FromString(const wxString &str),
+        "Returns true if the given string correctly initialized this object.", "");
+    
+    
+    %property(Command, GetCommand, doc="See `GetCommand`");
+    %property(Flags, GetFlags, doc="See `GetFlags`");
+    %property(KeyCode, GetKeyCode, doc="See `GetKeyCode`");
+    
+};
+
 
-    void SetMenuItem(wxMenuItem *item);
-    wxMenuItem *GetMenuItem() const;
 
-    int GetFlags();
-    int GetKeyCode();
-    int GetCommand();
-};
 
 
+DocStr(wxAcceleratorTable,
+"An accelerator table allows the application to specify a table of
+keyboard shortcuts for menus or other commands. On Windows, menu or
+button commands are supported; on GTK, only menu commands are
+supported.", "
+
+The object ``wx.NullAcceleratorTable`` is defined to be a table with
+no data, and is the initial accelerator table for a window.
+
+An accelerator takes precedence over normal processing and can be a
+convenient way to program some event handling. For example, you can
+use an accelerator table to make a hotkey generate an event no matter
+which window within a frame has the focus.
+
+For example::
+
+    aTable = wx.AcceleratorTable([(wx.ACCEL_ALT,  ord('X'), exitID),
+                                  (wx.ACCEL_CTRL, ord('H'), helpID),
+                                  (wx.ACCEL_CTRL, ord('F'), findID),
+                                  (wx.ACCEL_NORMAL, wx.WXK_F3, findnextID)
+                                  ])
+    self.SetAcceleratorTable(aTable)
+
+
+:see: `wx.AcceleratorEntry`, `wx.Window.SetAcceleratorTable`
+");
+
 class wxAcceleratorTable : public wxObject {
 public:
     DocAStr(wxAcceleratorTable,
             "__init__(entries) -> AcceleratorTable",
-            "Construct an AcceleratorTable from a list of AcceleratorEntry items or\n"
-            "3-tuples (flags, keyCode, cmdID)");
+            "Construct an AcceleratorTable from a list of `wx.AcceleratorEntry`
+items or or of 3-tuples (flags, keyCode, cmdID)
+
+:see: `wx.AcceleratorEntry`", "");
     wxAcceleratorTable(int n, const wxAcceleratorEntry* entries);
     ~wxAcceleratorTable();
 
-    bool Ok() const;
+    bool IsOk() const;
+    %pythoncode { Ok = IsOk }
 };
 
+
  
 %immutable;
-// See also wxPy_ReinitStockObjects in helpers.cpp
 const wxAcceleratorTable wxNullAcceleratorTable;
 %mutable;
 
 
-wxAcceleratorEntry *wxGetAccelFromString(const wxString& label);
+%pythoncode {
+    def GetAccelFromString(label):
+        entry = AcceleratorEntry()
+        entry.FromString(label)
+        return entry
+}
 
 //---------------------------------------------------------------------------