]> git.saurik.com Git - wxWidgets.git/commitdiff
Added a box style definition name to the box attribute.
authorJulian Smart <julian@anthemion.co.uk>
Mon, 2 Jan 2012 21:18:05 +0000 (21:18 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 2 Jan 2012 21:18:05 +0000 (21:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/richtext/richtextbuffer.h
interface/wx/richtext/richtextbuffer.h
src/richtext/richtextbuffer.cpp
src/richtext/richtextxml.cpp

index 8d73233313969d7de65bfa326371640cc9e24751..38d75f16d1e4f8af92be1810776c7daa623b097d 100644 (file)
@@ -273,7 +273,8 @@ enum wxTextBoxAttrFlags
     wxTEXT_BOX_ATTR_FLOAT                   = 0x00000001,
     wxTEXT_BOX_ATTR_CLEAR                   = 0x00000002,
     wxTEXT_BOX_ATTR_COLLAPSE_BORDERS        = 0x00000004,
     wxTEXT_BOX_ATTR_FLOAT                   = 0x00000001,
     wxTEXT_BOX_ATTR_CLEAR                   = 0x00000002,
     wxTEXT_BOX_ATTR_COLLAPSE_BORDERS        = 0x00000004,
-    wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT      = 0x00000008
+    wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT      = 0x00000008,
+    wxTEXT_BOX_ATTR_BOX_STYLE_NAME          = 0x00000010
 };
 
 /**
 };
 
 /**
@@ -1332,6 +1333,21 @@ public:
     wxTextAttrDimension& GetHeight() { return m_size.m_height; }
     const wxTextAttrDimension& GetHeight() const { return m_size.m_height; }
 
     wxTextAttrDimension& GetHeight() { return m_size.m_height; }
     const wxTextAttrDimension& GetHeight() const { return m_size.m_height; }
 
+    /**
+        Returns the box style name.
+    */
+    const wxString& GetBoxStyleName() const { return m_boxStyleName; }
+
+    /**
+        Sets the box style name.
+    */
+    void SetBoxStyleName(const wxString& name) { m_boxStyleName = name; AddFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); }
+
+    /**
+        Returns @true if the box style name is present.
+    */
+    bool HasBoxStyleName() const { return HasFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); }
+
 public:
 
     int                             m_flags;
 public:
 
     int                             m_flags;
@@ -1349,6 +1365,7 @@ public:
     wxTextBoxAttrClearStyle         m_clearMode;
     wxTextBoxAttrCollapseMode       m_collapseMode;
     wxTextBoxAttrVerticalAlignment  m_verticalAlignment;
     wxTextBoxAttrClearStyle         m_clearMode;
     wxTextBoxAttrCollapseMode       m_collapseMode;
     wxTextBoxAttrVerticalAlignment  m_verticalAlignment;
+    wxString                        m_boxStyleName;
 };
 
 /**
 };
 
 /**
index 6c2a6b270751c800c39eb1e3cb9ef5593f5e7fa0..c9c4b655cd087008db177725b32ca13c74a17a6f 100644 (file)
@@ -1217,6 +1217,21 @@ public:
     wxTextAttrDimension& GetHeight() { return m_size.m_height; }
     const wxTextAttrDimension& GetHeight() const { return m_size.m_height; }
 
     wxTextAttrDimension& GetHeight() { return m_size.m_height; }
     const wxTextAttrDimension& GetHeight() const { return m_size.m_height; }
 
+    /**
+        Returns the box style name.
+    */
+    const wxString& GetBoxStyleName() const { return m_boxStyleName; }
+
+    /**
+        Sets the box style name.
+    */
+    void SetBoxStyleName(const wxString& name) { m_boxStyleName = name; AddFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); }
+
+    /**
+        Returns @true if the box style name is present.
+    */
+    bool HasBoxStyleName() const { return HasFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); }
+
 public:
 
     int                             m_flags;
 public:
 
     int                             m_flags;
@@ -1234,6 +1249,7 @@ public:
     wxTextBoxAttrClearStyle         m_clearMode;
     wxTextBoxAttrCollapseMode       m_collapseMode;
     wxTextBoxAttrVerticalAlignment  m_verticalAlignment;
     wxTextBoxAttrClearStyle         m_clearMode;
     wxTextBoxAttrCollapseMode       m_collapseMode;
     wxTextBoxAttrVerticalAlignment  m_verticalAlignment;
+    wxString                        m_boxStyleName;
 };
 
 /**
 };
 
 /**
index e762e5acfe4182925cf0bae9834fd8f56db336fe..dcd55780851a855326a4b2d89e32342bd61e8eb8 100644 (file)
@@ -10746,6 +10746,7 @@ void wxTextBoxAttr::Reset()
     m_clearMode = wxTEXT_BOX_ATTR_CLEAR_NONE;
     m_collapseMode = wxTEXT_BOX_ATTR_COLLAPSE_NONE;
     m_verticalAlignment = wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE;
     m_clearMode = wxTEXT_BOX_ATTR_CLEAR_NONE;
     m_collapseMode = wxTEXT_BOX_ATTR_COLLAPSE_NONE;
     m_verticalAlignment = wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE;
+    m_boxStyleName = wxEmptyString;
 
     m_margins.Reset();
     m_padding.Reset();
 
     m_margins.Reset();
     m_padding.Reset();
@@ -10774,7 +10775,9 @@ bool wxTextBoxAttr::operator== (const wxTextBoxAttr& attr) const
         m_size == attr.m_size &&
 
         m_border == attr.m_border &&
         m_size == attr.m_size &&
 
         m_border == attr.m_border &&
-        m_outline == attr.m_outline
+        m_outline == attr.m_outline &&
+
+        m_boxStyleName == attr.m_boxStyleName
         );
 }
 
         );
 }
 
@@ -10793,6 +10796,9 @@ bool wxTextBoxAttr::EqPartial(const wxTextBoxAttr& attr) const
     if (attr.HasVerticalAlignment() && HasVerticalAlignment() && (attr.GetVerticalAlignment() != GetVerticalAlignment()))
         return false;
 
     if (attr.HasVerticalAlignment() && HasVerticalAlignment() && (attr.GetVerticalAlignment() != GetVerticalAlignment()))
         return false;
 
+    if (attr.HasBoxStyleName() && HasBoxStyleName() && (attr.GetBoxStyleName() != GetBoxStyleName()))
+        return false;
+
     // Position
 
     if (!m_position.EqPartial(attr.m_position))
     // Position
 
     if (!m_position.EqPartial(attr.m_position))
@@ -10850,6 +10856,12 @@ bool wxTextBoxAttr::Apply(const wxTextBoxAttr& attr, const wxTextBoxAttr* compar
             SetVerticalAlignment(attr.GetVerticalAlignment());
     }
 
             SetVerticalAlignment(attr.GetVerticalAlignment());
     }
 
+    if (attr.HasBoxStyleName())
+    {
+        if (!(compareWith && compareWith->HasBoxStyleName() && compareWith->GetBoxStyleName() == attr.GetBoxStyleName()))
+            SetBoxStyleName(attr.GetBoxStyleName());
+    }
+
     m_margins.Apply(attr.m_margins, compareWith ? (& attr.m_margins) : (const wxTextAttrDimensions*) NULL);
     m_padding.Apply(attr.m_padding, compareWith ? (& attr.m_padding) : (const wxTextAttrDimensions*) NULL);
     m_position.Apply(attr.m_position, compareWith ? (& attr.m_position) : (const wxTextAttrDimensions*) NULL);
     m_margins.Apply(attr.m_margins, compareWith ? (& attr.m_margins) : (const wxTextAttrDimensions*) NULL);
     m_padding.Apply(attr.m_padding, compareWith ? (& attr.m_padding) : (const wxTextAttrDimensions*) NULL);
     m_position.Apply(attr.m_position, compareWith ? (& attr.m_position) : (const wxTextAttrDimensions*) NULL);
@@ -10877,6 +10889,12 @@ bool wxTextBoxAttr::RemoveStyle(const wxTextBoxAttr& attr)
     if (attr.HasVerticalAlignment())
         RemoveFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
 
     if (attr.HasVerticalAlignment())
         RemoveFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
 
+    if (attr.HasBoxStyleName())
+    {
+        SetBoxStyleName(wxEmptyString);
+        RemoveFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME);
+    }
+
     m_margins.RemoveStyle(attr.m_margins);
     m_padding.RemoveStyle(attr.m_padding);
     m_position.RemoveStyle(attr.m_position);
     m_margins.RemoveStyle(attr.m_margins);
     m_padding.RemoveStyle(attr.m_padding);
     m_position.RemoveStyle(attr.m_position);
@@ -10969,6 +10987,25 @@ void wxTextBoxAttr::CollectCommonAttributes(const wxTextBoxAttr& attr, wxTextBox
     else
         absentAttr.AddFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
 
     else
         absentAttr.AddFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
 
+    if (attr.HasBoxStyleName())
+    {
+        if (!clashingAttr.HasBoxStyleName() && !absentAttr.HasBoxStyleName())
+        {
+            if (HasBoxStyleName())
+            {
+                if (GetBoxStyleName() != attr.GetBoxStyleName())
+                {
+                    clashingAttr.AddFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME);
+                    RemoveFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME);
+                }
+            }
+            else
+                SetBoxStyleName(attr.GetBoxStyleName());
+        }
+    }
+    else
+        absentAttr.AddFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME);
+
     m_margins.CollectCommonAttributes(attr.m_margins, clashingAttr.m_margins, absentAttr.m_margins);
     m_padding.CollectCommonAttributes(attr.m_padding, clashingAttr.m_padding, absentAttr.m_padding);
     m_position.CollectCommonAttributes(attr.m_position, clashingAttr.m_position, absentAttr.m_position);
     m_margins.CollectCommonAttributes(attr.m_margins, clashingAttr.m_margins, absentAttr.m_margins);
     m_padding.CollectCommonAttributes(attr.m_padding, clashingAttr.m_padding, absentAttr.m_padding);
     m_position.CollectCommonAttributes(attr.m_position, clashingAttr.m_position, absentAttr.m_position);
index 9a34fd8894b6f308bfcb85f443f9efd5a765a2cd..a8d3894417aa7f8c1875bdacdb069054f8a4152c 100644 (file)
@@ -1162,6 +1162,9 @@ wxString wxRichTextXMLHandler::AddAttributes(const wxRichTextAttr& attr, bool is
         if (!attr.GetListStyleName().empty())
             AddAttribute(str, wxT("liststyle"), AttributeToXML(attr.GetListStyleName()));
 
         if (!attr.GetListStyleName().empty())
             AddAttribute(str, wxT("liststyle"), AttributeToXML(attr.GetListStyleName()));
 
+        if (!attr.GetTextBoxAttr().GetBoxStyleName().empty())
+            AddAttribute(str, wxT("boxstyle"), AttributeToXML(attr.GetTextBoxAttr().GetBoxStyleName()));
+
         if (attr.HasTabs())
         {
             wxString strTabs;
         if (attr.HasTabs())
         {
             wxString strTabs;
@@ -1451,6 +1454,9 @@ bool wxRichTextXMLHandler::AddAttributes(wxXmlNode* node, wxRichTextAttr& attr,
         if (!attr.GetListStyleName().empty())
             node->AddAttribute(wxT("liststyle"), attr.GetListStyleName());
 
         if (!attr.GetListStyleName().empty())
             node->AddAttribute(wxT("liststyle"), attr.GetListStyleName());
 
+        if (!attr.GetTextBoxAttr().GetBoxStyleName().empty())
+            node->AddAttribute(wxT("boxstyle"), attr.GetTextBoxAttr().GetBoxStyleName());
+
         if (attr.HasTabs())
         {
             wxString tabs;
         if (attr.HasTabs())
         {
             wxString tabs;
@@ -1804,6 +1810,13 @@ bool wxRichTextXMLHandler::ImportStyle(wxRichTextAttr& attr, wxXmlNode* node, bo
                     attr.SetListStyleName(value);
                 }
             }
                     attr.SetListStyleName(value);
                 }
             }
+            else if (name == wxT("boxstyle"))
+            {
+                if (!value.empty())
+                {
+                    attr.GetTextBoxAttr().SetBoxStyleName(value);
+                }
+            }
             else if (name == wxT("tabs"))
             {
                 if (!value.empty())
             else if (name == wxT("tabs"))
             {
                 if (!value.empty())