+#endif
+
+// Normal selection occurs initially and as user drags within one container.
+// Common ancestor selection occurs when the user starts dragging across containers
+// that have a common ancestor, for example the cells in a table.
+enum wxRichTextCtrlSelectionState
+{
+ wxRichTextCtrlSelectionState_Normal,
+ wxRichTextCtrlSelectionState_CommonAncestor
+};
+
+/*!
+ * wxRichTextContextMenuPropertiesInfo keeps track of objects that appear in the context menu,
+ * whose properties are available to be edited.
+ */
+
+class WXDLLIMPEXP_RICHTEXT wxRichTextContextMenuPropertiesInfo
+{
+public:
+ wxRichTextContextMenuPropertiesInfo() { Init(); }
+
+// Operations
+
+ /// Initialisation
+ void Init() {}
+
+ /// Add an item
+ bool AddItem(const wxString& label, wxRichTextObject* obj);
+
+ /// Returns number of menu items were added.
+ int AddMenuItems(wxMenu* menu, int startCmd = wxID_RICHTEXT_PROPERTIES1) const;
+
+ /// Add appropriate menu items for the current container and clicked on object
+ /// (and container's parent, if appropriate).
+ int AddItems(wxRichTextObject* container, wxRichTextObject* obj);
+
+ /// Clear the items
+ void Clear() { m_objects.Clear(); m_labels.Clear(); }
+
+// Accessors
+ /// Gets the nth label
+ wxString GetLabel(int n) const { return m_labels[n]; }
+
+ /// Gets the nth object
+ wxRichTextObject* GetObject(int n) const { return m_objects[n]; }
+
+ /// Get objects
+ wxRichTextObjectPtrArray& GetObjects() { return m_objects; }
+ const wxRichTextObjectPtrArray& GetObjects() const { return m_objects; }
+
+ /// Get labels
+ wxArrayString& GetLabels() { return m_labels; }
+ const wxArrayString& GetLabels() const { return m_labels; }
+
+ /// Get number of items
+ int GetCount() const { return m_objects.GetCount(); }
+
+ //wxArrayInt m_ids;
+ wxRichTextObjectPtrArray m_objects;
+ wxArrayString m_labels;
+};