]> git.saurik.com Git - wxWidgets.git/commitdiff
reorder GetLabel(), GetLabelText(), SetLabel() and SetLabelText() function declaratio...
authorFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sun, 21 Mar 2010 21:39:15 +0000 (21:39 +0000)
committerFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sun, 21 Mar 2010 21:39:15 +0000 (21:39 +0000)
Add wxStaticTextBase::GetLabelWithoutMarkup() and use it in the wxMSW implementation of wxStaticText::SetLabel() to close bug #11446; the function RemoveMarkup() which was previously used in fact could not check for presence/absence of wxST_MARKUP style since it's a static function.

Add wxStaticTextBase::SetLabelText() functions for symmetry with wxControlBase::SetLabelText()

Add test unit for both wxControl::*Label* and wxStaticText::*Label* functions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

18 files changed:
include/wx/control.h
include/wx/stattext.h
interface/wx/control.h
interface/wx/stattext.h
src/common/ctrlcmn.cpp
src/common/stattextcmn.cpp
src/msw/stattext.cpp
tests/Makefile.in
tests/controls/label.cpp [new file with mode: 0644]
tests/makefile.bcc
tests/makefile.gcc
tests/makefile.vc
tests/makefile.wat
tests/test.bkl
tests/test_test_gui.dsp
tests/test_vc7_test_gui.vcproj
tests/test_vc8_test_gui.vcproj
tests/test_vc9_test_gui.vcproj

index 8f1a1767c140da61fad3ed57e3af44738bba6a51..31ceeef4211fa7a9f46673f27471f0a5234b30ad 100644 (file)
@@ -71,6 +71,7 @@ public:
     // get the control alignment (left/right/centre, top/bottom/centre)
     int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; }
 
     // get the control alignment (left/right/centre, top/bottom/centre)
     int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; }
 
+    // set label with mnemonics
     virtual void SetLabel(const wxString& label)
     {
         m_labelOrig = label;
     virtual void SetLabel(const wxString& label)
     {
         m_labelOrig = label;
@@ -80,21 +81,19 @@ public:
         wxWindow::SetLabel(label);
     }
 
         wxWindow::SetLabel(label);
     }
 
-    virtual wxString GetLabel() const
-    {
-        // return the original string, as it was passed to SetLabel()
-        // (i.e. with wx-style mnemonics)
-        return m_labelOrig;
-    }
-
-    // get just the text of the label, without mnemonic characters ('&')
-    wxString GetLabelText() const { return GetLabelText(GetLabel()); }
+    // return the original string, as it was passed to SetLabel()
+    // (i.e. with wx-style mnemonics)
+    virtual wxString GetLabel() const { return m_labelOrig; }
 
 
-    void SetLabelText(const wxString& text)
+    // set label text (mnemonics will be escaped)
+    virtual void SetLabelText(const wxString& text)
     {
         SetLabel(EscapeMnemonics(text));
     }
 
     {
         SetLabel(EscapeMnemonics(text));
     }
 
+    // get just the text of the label, without mnemonic characters ('&')
+    virtual wxString GetLabelText() const { return GetLabelText(GetLabel()); }
+
     // controls by default inherit the colours of their parents, if a
     // particular control class doesn't want to do it, it can override
     // ShouldInheritColours() to return false
     // controls by default inherit the colours of their parents, if a
     // particular control class doesn't want to do it, it can override
     // ShouldInheritColours() to return false
@@ -114,23 +113,29 @@ public:
 
 
 
 
 
 
-    // static utilities
-    // ----------------
-
-    // replaces parts of the (multiline) string with ellipsis if needed
-    static wxString Ellipsize(const wxString& label, const wxDC& dc,
-                              wxEllipsizeMode mode, int maxWidth,
-                              int flags = wxELLIPSIZE_FLAGS_DEFAULT);
+    // static utilities for mnemonics char (&) handling
+    // ------------------------------------------------
 
 
-    // get the string without mnemonic characters ('&')
+    // returns the given string without mnemonic characters ('&')
     static wxString GetLabelText(const wxString& label);
 
     static wxString GetLabelText(const wxString& label);
 
-    // removes the mnemonics characters
+    // returns the given string without mnemonic characters ('&')
+    // this function is identic to GetLabelText() and is provided for clarity
+    // and for symmetry with the wxStaticText::RemoveMarkup() function.
     static wxString RemoveMnemonics(const wxString& str);
 
     // escapes (by doubling them) the mnemonics
     static wxString EscapeMnemonics(const wxString& str);
 
     static wxString RemoveMnemonics(const wxString& str);
 
     // escapes (by doubling them) the mnemonics
     static wxString EscapeMnemonics(const wxString& str);
 
+
+    // miscellaneous static utilities
+    // ------------------------------
+
+    // replaces parts of the given (multiline) string with an ellipsis if needed
+    static wxString Ellipsize(const wxString& label, const wxDC& dc,
+                              wxEllipsizeMode mode, int maxWidth,
+                              int flags = wxELLIPSIZE_FLAGS_DEFAULT);
+
     // return the accel index in the string or -1 if none and puts the modified
     // string into second parameter if non NULL
     static int FindAccelIndex(const wxString& label,
     // return the accel index in the string or -1 if none and puts the modified
     // string into second parameter if non NULL
     static int FindAccelIndex(const wxString& label,
index f8d7ede736f1e583001f94456e22f2eb3f91a076..f9e202ac1ba5c37863aa79a20ac5757e48b827dd 100644 (file)
@@ -51,16 +51,24 @@ public:
     }
 
     // get the string without mnemonic characters ('&') and without markup
     }
 
     // get the string without mnemonic characters ('&') and without markup
-    // (if wxST_MARKUP is being used)
+    // (if the wxST_MARKUP style is set)
     virtual wxString GetLabelText() const;
 
     virtual wxString GetLabelText() const;
 
-    // public utilities (symmetric to those in wxControl about mnemonics):
+    // set label text (mnemonics and markup, if the wxST_MARKUP style is set,
+    // will be escaped)
+    virtual void SetLabelText(const wxString& text);
+
+
+    // static utilities for markup handling
+    // (symmetric to those in wxControl about mnemonics)
+    // -------------------------------------------------
 
     // get the string without mnemonic characters ('&') and without markup
 
     // get the string without mnemonic characters ('&') and without markup
+    // (note that markup is always removed; this function is static and cannot
+    //  check for wxST_MARKUP style presence/absence!)
     static wxString GetLabelText(const wxString& label);
 
     static wxString GetLabelText(const wxString& label);
 
-    // removes the markup accepted by wxStaticText when wxST_MARKUP is used,
-    // and then returns the cleaned string
+    // removes the markup recognized by wxStaticText and returns the cleaned string
     static wxString RemoveMarkup(const wxString& str);
 
     // escapes all special symbols (<>"'&) present in the given string
     static wxString RemoveMarkup(const wxString& str);
 
     // escapes all special symbols (<>"'&) present in the given string
@@ -72,7 +80,14 @@ protected:      // functions required for wxST_ELLIPSIZE_* support
     // choose the default border for this window
     virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
 
     // choose the default border for this window
     virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
 
-    // just calls RemoveMarkup & Ellipsize on the original label.
+    // calls only RemoveMarkup() on the original label 
+    // if the wxST_MARKUP style is set
+    // (but unlike GetLabelText won't remove mnemonics)
+    virtual wxString GetLabelWithoutMarkup() const;
+
+    // just calls RemoveMarkup() & Ellipsize() on the original label 
+    // if the wxST_MARKUP & wxST_ELLIPSIZE_* styles are set
+    // (but unlike GetLabelText won't remove mnemonics)
     virtual wxString GetEllipsizedLabelWithoutMarkup() const;
 
     // replaces parts of the string with ellipsis if needed
     virtual wxString GetEllipsizedLabelWithoutMarkup() const;
 
     // replaces parts of the string with ellipsis if needed
index 5823f312628cbc04bb51a5505dccacc6683947f4..eb5bdc7cd5adfd0ed4e1339e0b83e0cee7ad545e 100644 (file)
@@ -94,58 +94,68 @@ public:
     virtual void Command(wxCommandEvent& event);
 
     /**
     virtual void Command(wxCommandEvent& event);
 
     /**
-        Replaces parts of the @a label string with ellipsis, if needed, so
-        that it doesn't exceed @a maxWidth.
-        
-        Note that this functions is guaranteed to always returns a string
-        whose rendering on the given DC takes less than @a maxWidth pixels
-        in horizontal.
-
-        @param label
-            The string to ellipsize
-        @param dc
-            The DC used to retrieve the character widths through the
-            wxDC::GetPartialTextExtents() function.
-        @param mode
-            The ellipsization mode. This is the setting which determines
-            which part of the string should be replaced by the ellipsis.
-            See ::wxEllipsizeMode enumeration values for more info.
-        @param maxWidth
-            The maximum width of the returned string in pixels.
-            This argument determines how much characters of the string need to
-            be removed (and replaced by ellipsis).
-        @param flags
-            One or more of the ::wxEllipsizeFlags enumeration values combined.
-    */
-    static wxString Ellipsize(const wxString& label, const wxDC& dc,
-                              wxEllipsizeMode mode, int maxWidth,
-                              int flags = wxELLIPSIZE_FLAGS_DEFAULT);
+        Returns the control's label, as it was passed to SetLabel().
 
 
-    /**
-        Returns the control's text.
+        Note that the returned string may contains mnemonics ("&" characters) if they were
+        passed to the SetLabel() function; use GetLabelText() if they are undesired.
 
 
-        @note The returned string contains mnemonics ("&" characters) if it has
-              any, use GetLabelText() if they are undesired.
+        Also note that the returned string is always the string which was passed to
+        SetLabel() but may be different from the string passed to SetLabelText()
+        (since this last one escapes mnemonic characters).
     */
     wxString GetLabel() const;
 
     /**
         Returns the control's label without mnemonics.
     */
     wxString GetLabel() const;
 
     /**
         Returns the control's label without mnemonics.
+
+        Note that because of the stripping of the mnemonics the returned string may differ
+        from the string which was passed to SetLabel().
     */
     wxString GetLabelText() const;
 
     */
     wxString GetLabelText() const;
 
+    /**
+        Sets the control's label.
+
+        All "&" characters in the @a label are special and indicate that the
+        following character is a @e mnemonic for this control and can be used to
+        activate it from the keyboard (typically by using @e Alt key in
+        combination with it). To insert a literal ampersand character, you need
+        to double it, i.e. use use "&&". If this behaviour is undesirable, use
+        SetLabelText() instead.
+    */
+    void SetLabel(const wxString& label);
+
+    /**
+        Sets the control's label to exactly the given string.
+
+        Unlike SetLabel(), this function shows exactly the @a text passed to it
+        in the control, without interpreting ampersands in it in any way.
+        Notice that it means that the control can't have any mnemonic defined
+        for it using this function.
+
+        @see EscapeMnemonics()
+     */
+    void SetLabelText(const wxString& text);
+
+
+public:     // static functions
+    
     /**
         Returns the given @a label string without mnemonics ("&" characters).
     */
     static wxString GetLabelText(const wxString& label);
 
     /**
     /**
         Returns the given @a label string without mnemonics ("&" characters).
     */
     static wxString GetLabelText(const wxString& label);
 
     /**
-        Removes the mnemonics ("&" characters) from the given string.
+        Returns the given @a str string without mnemonics ("&" characters).
+        
+        @note This function is identic to GetLabelText() and is provided both for symmetry
+              with the wxStaticText::RemoveMarkup() function and to allow to write more
+              readable code (since this function has a more descriptive name respect GetLabelText()).
     */
     static wxString RemoveMnemonics(const wxString& str);
 
     /**
     */
     static wxString RemoveMnemonics(const wxString& str);
 
     /**
-        Escape the special mnemonics characters ("&") in the given string.
+        Escapes the special mnemonics characters ("&") in the given string.
 
         This function can be helpful if you need to set the controls label to a
         user-provided string. If the string contains ampersands, they wouldn't
 
         This function can be helpful if you need to set the controls label to a
         user-provided string. If the string contains ampersands, they wouldn't
@@ -167,27 +177,31 @@ public:
     static wxString EscapeMnemonics(const wxString& text);
 
     /**
     static wxString EscapeMnemonics(const wxString& text);
 
     /**
-        Sets the item's text.
+        Replaces parts of the @a label string with ellipsis, if needed, so
+        that it doesn't exceed @a maxWidth.
+        
+        Note that this functions is guaranteed to always returns a string
+        whose rendering on the given DC takes less than @a maxWidth pixels
+        in horizontal.
 
 
-        Any "&" characters in the @a label are special and indicate that the
-        following character is a @e mnemonic for this control and can be used to
-        activate it from the keyboard (typically by using @e Alt key in
-        combination with it). To insert a literal ampersand character, you need
-        to double it, i.e. use use "&&". If this behaviour is undesirable, use
-        SetLabelText() instead.
+        @param label
+            The string to ellipsize
+        @param dc
+            The DC used to retrieve the character widths through the
+            wxDC::GetPartialTextExtents() function.
+        @param mode
+            The ellipsization mode. This is the setting which determines
+            which part of the string should be replaced by the ellipsis.
+            See ::wxEllipsizeMode enumeration values for more info.
+        @param maxWidth
+            The maximum width of the returned string in pixels.
+            This argument determines how much characters of the string need to
+            be removed (and replaced by ellipsis).
+        @param flags
+            One or more of the ::wxEllipsizeFlags enumeration values combined.
     */
     */
-    void SetLabel(const wxString& label);
-
-    /**
-        Sets the item's text to exactly the given string.
-
-        Unlike SetLabel(), this function shows exactly the @a text passed to it
-        in the control, without interpreting ampersands in it in any way.
-        Notice that it means that the control can't have any mnemonic defined
-        for it using this function.
-
-        @see EscapeMnemonics()
-     */
-    void SetLabelText(const wxString& text);
+    static wxString Ellipsize(const wxString& label, const wxDC& dc,
+                              wxEllipsizeMode mode, int maxWidth,
+                              int flags = wxELLIPSIZE_FLAGS_DEFAULT);
 };
 
 };
 
index 4e297aabc5495df8ae716b278bc475f9fea1603b..412dde24ce8692979f70225aaf7a1c085a223ff0 100644 (file)
            Center the text (horizontally).
     @style{wxST_NO_AUTORESIZE}
            By default, the control will adjust its size to exactly fit to the
            Center the text (horizontally).
     @style{wxST_NO_AUTORESIZE}
            By default, the control will adjust its size to exactly fit to the
-           size of the text when  SetLabel is called. If this style flag is
+           size of the text when SetLabel() is called. If this style flag is
            given, the control will not change its size (this style is
            given, the control will not change its size (this style is
-           especially useful with controls which also have wxALIGN_RIGHT or
-           CENTER style because otherwise they won't make sense any longer
-           after a call to SetLabel).
+           especially useful with controls which also have the @c wxALIGN_RIGHT or
+           the @c wxALIGN_CENTRE style because otherwise they won't make sense any 
+           longer after a call to SetLabel()).
     @style{wxST_ELLIPSIZE_START}
            If the labeltext width exceeds the control width, replace the beginning
            of the label with an ellipsis; uses wxControl::Ellipsize.
     @style{wxST_ELLIPSIZE_START}
            If the labeltext width exceeds the control width, replace the beginning
            of the label with an ellipsis; uses wxControl::Ellipsize.
@@ -89,23 +89,12 @@ public:
                 const wxSize& size = wxDefaultSize, long style = 0,
                 const wxString& name = wxStaticTextNameStr);
 
                 const wxSize& size = wxDefaultSize, long style = 0,
                 const wxString& name = wxStaticTextNameStr);
 
-    // NB: when writing docs for the following function remember that Doxygen
-    //     will always expand HTML entities (e.g. &quot;) and thus we need to
-    //     write e.g. "&amp;lt;" to have in the output the "&lt;" string.
-    /**
-        Escapes all the symbols of @a str that have a special meaning (<tt><>&quot;'&</tt>) for
-        wxStaticText objects with the @c wxST_MARKUP style.
-        
-        Those symbols are replaced the corresponding entities 
-        (&amp;lt; &amp;gt; &amp;quot; &amp;apos; &amp;amp;).
-    */
-    static wxString EscapeMarkup(const wxString& str);
-
     /**
         Returns the contents of the control.
 
     /**
         Returns the contents of the control.
 
-        Note that the returned string contains both the mnemonics (@& characters),
+        Note that the returned string may contain both the mnemonics (@& characters),
         if any, and markup tags, if any.
         if any, and markup tags, if any.
+
         Use GetLabelText() if only the label text is needed.
     */
     wxString GetLabel() const;
         Use GetLabelText() if only the label text is needed.
     */
     wxString GetLabel() const;
@@ -116,29 +105,19 @@ public:
     */
     wxString GetLabelText() const;
 
     */
     wxString GetLabelText() const;
 
-    /**
-        This overload returns the given @a label string without the
-        mnemonics characters (if any) and without the markup.
-    */
-    static wxString GetLabelText(const wxString& label);
-
     /**
         Returns @true if the window styles for this control contains one of the
         @c wxST_ELLIPSIZE_START, @c wxST_ELLIPSIZE_MIDDLE or @c wxST_ELLIPSIZE_END styles.
     */
     bool IsEllipsized() const;
 
     /**
         Returns @true if the window styles for this control contains one of the
         @c wxST_ELLIPSIZE_START, @c wxST_ELLIPSIZE_MIDDLE or @c wxST_ELLIPSIZE_END styles.
     */
     bool IsEllipsized() const;
 
-    /**
-        Removes the markup accepted by wxStaticText when the @c wxST_MARKUP style is used,
-        and then returns the cleaned string.
-
-        See SetLabel() for more info about the markup.
-    */
-    static wxString RemoveMarkup(const wxString& str);
+    // NB: when writing docs for the following function remember that Doxygen
+    //     will always expand HTML entities (e.g. &quot;) and thus we need to
+    //     write e.g. "&amp;lt;" to have in the output the "&lt;" string.
 
     /**
         Sets the static text label and updates the controls size to exactly fit the
 
     /**
         Sets the static text label and updates the controls size to exactly fit the
-        label unless the control has wxST_NO_AUTORESIZE flag.
+        label unless the control has @c wxST_NO_AUTORESIZE flag.
 
         This function allows to set decorated static label text on platforms which
         support it (currently only GTK+ 2). For the other platforms, the markup is
 
         This function allows to set decorated static label text on platforms which
         support it (currently only GTK+ 2). For the other platforms, the markup is
@@ -146,6 +125,10 @@ public:
 
         The supported tags are:
         <TABLE>
 
         The supported tags are:
         <TABLE>
+            <TR>
+                <TD><b>Tag</b></TD>
+                <TD><b>Description</b></TD>
+            </TR>
             <TR>
                 <TD>&lt;b&gt;</TD>
                 <TD>bold text</TD>
             <TR>
                 <TD>&lt;b&gt;</TD>
                 <TD>bold text</TD>
@@ -231,6 +214,17 @@ public:
             It may contain newline characters and the markup tags described above.
     */
     virtual void SetLabel(const wxString& label);
             It may contain newline characters and the markup tags described above.
     */
     virtual void SetLabel(const wxString& label);
+    
+    /**
+                Sets the control's label to exactly the given string.
+
+        Unlike SetLabel(), this function shows exactly the @a text passed to it
+        in the control, without interpreting ampersands in it in any way.
+        Notice that it means that the control can't have any mnemonic defined
+        for it using this function.
+
+    */
+    virtual void SetLabelText(const wxString& text);
 
     /**
         This functions wraps the controls label so that each of its lines becomes at
 
     /**
         This functions wraps the controls label so that each of its lines becomes at
@@ -244,5 +238,34 @@ public:
         @since 2.6.2
     */
     void Wrap(int width);
         @since 2.6.2
     */
     void Wrap(int width);
+
+
+public:     // static functions
+    
+    /**
+        Returns the given @a label string without the mnemonics characters (if any) 
+        and without the markup.
+
+        Note that since this function is static it will always remove markup
+        (since it cannot check @c wxST_MARKUP presence/absence!).
+    */
+    static wxString GetLabelText(const wxString& label);
+
+    /**
+        Escapes all the symbols of @a str that have a special meaning (<tt><>&quot;'&</tt>) for
+        wxStaticText objects with the @c wxST_MARKUP style.
+        
+        Those symbols are replaced the corresponding entities 
+        (&amp;lt; &amp;gt; &amp;quot; &amp;apos; &amp;amp;).
+    */
+    static wxString EscapeMarkup(const wxString& str);
+
+    /**
+        Removes the markup accepted by wxStaticText when the @c wxST_MARKUP style is used,
+        and then returns the cleaned string.
+
+        See SetLabel() for more info about the markup.
+    */
+    static wxString RemoveMarkup(const wxString& str);
 };
 
 };
 
index 851237fe56f4d9ad74ae2195b811292360c6e238..c21a6317131ffce796f6a288f7002a6e9644eebe 100644 (file)
@@ -88,13 +88,6 @@ bool wxControlBase::CreateControl(wxWindowBase *parent,
     return true;
 }
 
     return true;
 }
 
-/* static */
-wxString wxControlBase::GetLabelText(const wxString& label)
-{
-    // we don't want strip the TABs here, just the mnemonics
-    return wxStripMenuCodes(label, wxStrip_Mnemonics);
-}
-
 void wxControlBase::Command(wxCommandEvent& event)
 {
     (void)GetEventHandler()->ProcessEvent(event);
 void wxControlBase::Command(wxCommandEvent& event)
 {
     (void)GetEventHandler()->ProcessEvent(event);
@@ -154,9 +147,17 @@ void wxControlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
 #endif // wxUSE_RADIOBTN
 }
 
 #endif // wxUSE_RADIOBTN
 }
 
+/* static */
+wxString wxControlBase::GetLabelText(const wxString& label)
+{
+    // we don't want strip the TABs here, just the mnemonics
+    return wxStripMenuCodes(label, wxStrip_Mnemonics);
+}
+
 /* static */
 wxString wxControlBase::RemoveMnemonics(const wxString& str)
 {
 /* static */
 wxString wxControlBase::RemoveMnemonics(const wxString& str)
 {
+    // we don't want strip the TABs here, just the mnemonics
     return wxStripMenuCodes(str, wxStrip_Mnemonics);
 }
 
     return wxStripMenuCodes(str, wxStrip_Mnemonics);
 }
 
index e9a22fd8f505823c9088aabdd99fed18451d26b9..95ced81a860ce914c841386b521bd5628362aba2 100644 (file)
@@ -154,15 +154,28 @@ wxString wxStaticTextBase::GetLabelText() const
     return RemoveMnemonics(ret);
 }
 
     return RemoveMnemonics(ret);
 }
 
-/*static*/
+void wxStaticTextBase::SetLabelText(const wxString& text)
+{
+    wxString str = text;
+
+    if (HasFlag(wxST_MARKUP))
+        str = EscapeMarkup(str);        // escapes markup and the & characters (which are also mnemonics)
+    else
+        str = EscapeMnemonics(text);    // escape only the mnemonics
+    SetLabel(str);
+}
+
+/* static */
 wxString wxStaticTextBase::GetLabelText(const wxString& label)
 {
 wxString wxStaticTextBase::GetLabelText(const wxString& label)
 {
-    // remove markup
     wxString ret = RemoveMarkup(label);
     wxString ret = RemoveMarkup(label);
+        // always remove the markup (this function is static 
+        // and cannot check for wxST_MARKUP presence/absence)
+
     return RemoveMnemonics(ret);
 }
 
     return RemoveMnemonics(ret);
 }
 
-/*static*/
+/* static */
 wxString wxStaticTextBase::RemoveMarkup(const wxString& text)
 {
     // strip out of "text" the markup for platforms which don't support it natively
 wxString wxStaticTextBase::RemoveMarkup(const wxString& text)
 {
     // strip out of "text" the markup for platforms which don't support it natively
@@ -293,6 +306,17 @@ void wxStaticTextBase::UpdateLabel()
     DoSetLabel(newlabel);
 }
 
     DoSetLabel(newlabel);
 }
 
+wxString wxStaticTextBase::GetLabelWithoutMarkup() const
+{
+    wxString ret(m_labelOrig);
+
+    if (HasFlag(wxST_MARKUP))
+        ret = RemoveMarkup(ret);
+
+    // unlike GetLabelText() we don't remove the mnemonics here!
+    return ret;
+}
+
 wxString wxStaticTextBase::GetEllipsizedLabelWithoutMarkup() const
 {
     // this function should be used only by ports which do not support
 wxString wxStaticTextBase::GetEllipsizedLabelWithoutMarkup() const
 {
     // this function should be used only by ports which do not support
index a2862c2179ed188b3fe52d2b4a022f72f4311609..13096284658f4de803533766e35230d7371b9fc1 100644 (file)
@@ -214,13 +214,13 @@ void wxStaticText::SetLabel(const wxString& label)
     }
 #endif // SS_ENDELLIPSIS
 
     }
 #endif // SS_ENDELLIPSIS
 
-    // this call will save the label in m_labelOrig and set it into this window
-    // (through wxWindow::SetLabel)
+    // save the label in m_labelOrig with both the markup (if any) and 
+    // the mnemonics characters (if any)
     m_labelOrig = label;
 
 #ifdef SS_ENDELLIPSIS
     if ( styleReal & SS_ENDELLIPSIS )
     m_labelOrig = label;
 
 #ifdef SS_ENDELLIPSIS
     if ( styleReal & SS_ENDELLIPSIS )
-        DoSetLabel(RemoveMarkup(label));
+        DoSetLabel(GetLabelWithoutMarkup());
     else
 #endif // SS_ENDELLIPSIS
         DoSetLabel(GetEllipsizedLabelWithoutMarkup());
     else
 #endif // SS_ENDELLIPSIS
         DoSetLabel(GetEllipsizedLabelWithoutMarkup());
index 21d0ac5c2b1f3db63e6e79ca377d2f5f90bedba8..06d196338f4fad724285195f3e39c41f6aa4003c 100644 (file)
@@ -141,6 +141,7 @@ TEST_GUI_OBJECTS =  \
        test_gui_config.o \
        test_gui_comboboxtest.o \
        test_gui_headerctrltest.o \
        test_gui_config.o \
        test_gui_comboboxtest.o \
        test_gui_headerctrltest.o \
+       test_gui_label.o \
        test_gui_listctrltest.o \
        test_gui_textctrltest.o \
        test_gui_textentrytest.o \
        test_gui_listctrltest.o \
        test_gui_textctrltest.o \
        test_gui_textentrytest.o \
@@ -590,6 +591,9 @@ test_gui_comboboxtest.o: $(srcdir)/controls/comboboxtest.cpp $(TEST_GUI_ODEP)
 test_gui_headerctrltest.o: $(srcdir)/controls/headerctrltest.cpp $(TEST_GUI_ODEP)
        $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/headerctrltest.cpp
 
 test_gui_headerctrltest.o: $(srcdir)/controls/headerctrltest.cpp $(TEST_GUI_ODEP)
        $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/headerctrltest.cpp
 
+test_gui_label.o: $(srcdir)/controls/label.cpp $(TEST_GUI_ODEP)
+       $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/label.cpp
+
 test_gui_listctrltest.o: $(srcdir)/controls/listctrltest.cpp $(TEST_GUI_ODEP)
        $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/listctrltest.cpp
 
 test_gui_listctrltest.o: $(srcdir)/controls/listctrltest.cpp $(TEST_GUI_ODEP)
        $(CXXC) -c -o $@ $(TEST_GUI_CXXFLAGS) $(srcdir)/controls/listctrltest.cpp
 
diff --git a/tests/controls/label.cpp b/tests/controls/label.cpp
new file mode 100644 (file)
index 0000000..d9d2eeb
--- /dev/null
@@ -0,0 +1,213 @@
+///////////////////////////////////////////////////////////////////////////////\r
+// Name:        tests/controls/label.cpp\r
+// Purpose:     wxControl and wxStaticText label tests\r
+// Author:      Francesco Montorsi\r
+// Created:     2010-3-21\r
+// RCS-ID:      $Id$\r
+// Copyright:   (c) 2010 Francesco Montorsi\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+// ----------------------------------------------------------------------------\r
+// headers\r
+// ----------------------------------------------------------------------------\r
+\r
+#include "testprec.h"\r
+\r
+#ifdef __BORLANDC__\r
+    #pragma hdrstop\r
+#endif\r
+\r
+#ifndef WX_PRECOMP\r
+    #include "wx/app.h"\r
+#endif // WX_PRECOMP\r
+\r
+#include "wx/control.h"\r
+#include "wx/stattext.h"\r
+#include "wx/checkbox.h"\r
+\r
+// ----------------------------------------------------------------------------\r
+// test class\r
+// ----------------------------------------------------------------------------\r
+\r
+class LabelTestCase : public CppUnit::TestCase\r
+{\r
+public:\r
+    LabelTestCase() { }\r
+\r
+    virtual void setUp();\r
+    virtual void tearDown();\r
+\r
+private:\r
+    CPPUNIT_TEST_SUITE( LabelTestCase );\r
+        CPPUNIT_TEST( GetLabel );\r
+        CPPUNIT_TEST( GetLabelText );\r
+        CPPUNIT_TEST( Statics );\r
+    CPPUNIT_TEST_SUITE_END();\r
+\r
+    void GetLabel();\r
+    void GetLabelText();\r
+    void Statics();\r
+\r
+    wxStaticText *m_st, *m_stWithMarkup;\r
+\r
+    // we cannot test wxControl directly (it's abstract) so we rather test wxCheckBox\r
+    wxCheckBox *m_cb;\r
+\r
+    DECLARE_NO_COPY_CLASS(LabelTestCase)\r
+};\r
+\r
+// register in the unnamed registry so that these tests are run by default\r
+CPPUNIT_TEST_SUITE_REGISTRATION( LabelTestCase );\r
+\r
+// also include in it's own registry so that these tests can be run alone\r
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( LabelTestCase, "LabelTestCase" );\r
+\r
+// ----------------------------------------------------------------------------\r
+// test initialization\r
+// ----------------------------------------------------------------------------\r
+\r
+#define ORIGINAL_LABEL      "original label"\r
+\r
+void LabelTestCase::setUp()\r
+{\r
+    m_st = new wxStaticText(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL);\r
+    m_stWithMarkup = new wxStaticText(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL,\r
+                                      wxDefaultPosition, wxDefaultSize, wxST_MARKUP);\r
+\r
+    m_cb = new wxCheckBox(wxTheApp->GetTopWindow(), wxID_ANY, ORIGINAL_LABEL);\r
+\r
+    CPPUNIT_ASSERT_EQUAL( ORIGINAL_LABEL, m_st->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( ORIGINAL_LABEL, m_stWithMarkup->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( ORIGINAL_LABEL, m_cb->GetLabel() );\r
+}\r
+\r
+void LabelTestCase::tearDown()\r
+{\r
+    wxDELETE(m_st);\r
+    wxDELETE(m_stWithMarkup);\r
+    wxDELETE(m_cb);\r
+}\r
+\r
+// ----------------------------------------------------------------------------\r
+// the tests themselves\r
+// ----------------------------------------------------------------------------\r
+\r
+#define SET_LABEL(str)                              \\r
+        m_st->SetLabel(str);                        \\r
+        m_stWithMarkup->SetLabel(str);              \\r
+        m_cb->SetLabel(str);\r
+\r
+#define SET_LABEL_TEXT(str)                         \\r
+        m_st->SetLabelText(str);                    \\r
+        m_stWithMarkup->SetLabelText(str);          \\r
+        m_cb->SetLabelText(str);\r
+\r
+void LabelTestCase::GetLabel()\r
+{\r
+    const wxString testLabelArray[] = {\r
+        "label without mnemonics and markup",\r
+        "label with &mnemonic",\r
+        "label with <span foreground='blue'>some</span> <b>markup</b>",\r
+        "label with <span foreground='blue'>some</span> <b>markup</b> and &mnemonic",\r
+    };\r
+\r
+    // test calls to SetLabel() and then to GetLabel()\r
+\r
+    for ( unsigned int s = 0; s < WXSIZEOF(testLabelArray); s++ )\r
+    {\r
+        SET_LABEL(testLabelArray[s]);\r
+\r
+        // GetLabel() should always return the string passed to SetLabel()\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_st->GetLabel() );\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_stWithMarkup->GetLabel() );\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_cb->GetLabel() );\r
+    }\r
+\r
+\r
+    // test calls to SetLabelText() and then to GetLabel()\r
+\r
+    const wxString& testLabel = "label without mnemonics and markup";\r
+    SET_LABEL_TEXT(testLabel);\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_st->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_stWithMarkup->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_cb->GetLabel() );\r
+\r
+    const wxString& testLabel2 = "label with &mnemonic";\r
+    const wxString& testLabelText2 = "label with &&mnemonic";\r
+    SET_LABEL_TEXT(testLabel2);\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText2, m_st->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( "label with &amp;mnemonic", m_stWithMarkup->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText2, m_cb->GetLabel() );\r
+\r
+    const wxString& testLabel3 = "label with <span foreground='blue'>some</span> <b>markup</b>";\r
+    SET_LABEL_TEXT(testLabel3);\r
+    CPPUNIT_ASSERT_EQUAL( testLabel3, m_st->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( "label with &lt;span foreground=&apos;blue&apos;&gt;some&lt;/span&gt; &lt;b&gt;markup&lt;/b&gt;", m_stWithMarkup->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel3, m_cb->GetLabel() );\r
+\r
+    const wxString& testLabel4 = "label with <span foreground='blue'>some</span> <b>markup</b> and &mnemonic";\r
+    const wxString& testLabelText4 = "label with <span foreground='blue'>some</span> <b>markup</b> and &&mnemonic";\r
+    SET_LABEL_TEXT(testLabel4);\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText4, m_st->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( "label with &lt;span foreground=&apos;blue&apos;&gt;some&lt;/span&gt; &lt;b&gt;markup&lt;/b&gt; and &amp;mnemonic", m_stWithMarkup->GetLabel() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText4, m_cb->GetLabel() );\r
+}\r
+\r
+void LabelTestCase::GetLabelText()\r
+{\r
+    // test calls to SetLabel() and then to GetLabelText()\r
+\r
+    const wxString& testLabel = "label without mnemonics and markup";\r
+    SET_LABEL(testLabel);\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_st->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_stWithMarkup->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel, m_cb->GetLabelText() );\r
+\r
+    const wxString& testLabel2 = "label with &mnemonic";\r
+    const wxString& testLabelText2 = "label with mnemonic";\r
+    SET_LABEL(testLabel2);\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText2, m_st->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText2, m_stWithMarkup->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText2, m_cb->GetLabelText() );\r
+\r
+    const wxString& testLabel3 = "label with <span foreground='blue'>some</span> <b>markup</b>";\r
+    SET_LABEL(testLabel3);\r
+    CPPUNIT_ASSERT_EQUAL( testLabel3, m_st->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( "label with some markup", m_stWithMarkup->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabel3, m_cb->GetLabelText() );\r
+\r
+    const wxString& testLabel4 = "label with <span foreground='blue'>some</span> <b>markup</b> and &mnemonic";\r
+    const wxString& testLabelText4 = "label with <span foreground='blue'>some</span> <b>markup</b> and mnemonic";\r
+    SET_LABEL(testLabel4);\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText4, m_st->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( "label with some markup and mnemonic", m_stWithMarkup->GetLabelText() );\r
+    CPPUNIT_ASSERT_EQUAL( testLabelText4, m_cb->GetLabelText() );\r
+\r
+\r
+    const wxString testLabelArray[] = {\r
+        "label without mnemonics and markup",\r
+        "label with &mnemonic",\r
+        "label with <span foreground='blue'>some</span> <b>markup</b>",\r
+        "label with <span foreground='blue'>some</span> <b>markup</b> and &mnemonic",\r
+    };\r
+\r
+    // test calls to SetLabelText() and then to GetLabelText()\r
+\r
+    for ( unsigned int s = 0; s < WXSIZEOF(testLabelArray); s++ )\r
+    {\r
+        SET_LABEL_TEXT(testLabelArray[s]);\r
+\r
+        // GetLabelText() should always return the string passed to SetLabelText()\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_st->GetLabelText() );\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_stWithMarkup->GetLabelText() );\r
+        CPPUNIT_ASSERT_EQUAL( testLabelArray[s], m_cb->GetLabelText() );\r
+    }\r
+}\r
+\r
+void LabelTestCase::Statics()\r
+{\r
+    CPPUNIT_ASSERT_EQUAL( "mnemonic", wxControl::RemoveMnemonics("&mnemonic") );\r
+    CPPUNIT_ASSERT_EQUAL( "&mnemonic", wxControl::RemoveMnemonics("&&mnemonic") );\r
+    CPPUNIT_ASSERT_EQUAL( "&mnemonic", wxControl::RemoveMnemonics("&&&mnemonic") );\r
+    CPPUNIT_ASSERT_EQUAL( "", wxStaticText::RemoveMarkup("<b></b>") );\r
+}\r
index 373f224538ec16a5093cc888e0886f6213253604..241dc034fa3748645f924042ba2fb18a15569327 100644 (file)
@@ -126,6 +126,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_config.obj \\r
        $(OBJS)\test_gui_comboboxtest.obj \\r
        $(OBJS)\test_gui_headerctrltest.obj \\r
        $(OBJS)\test_gui_config.obj \\r
        $(OBJS)\test_gui_comboboxtest.obj \\r
        $(OBJS)\test_gui_headerctrltest.obj \\r
+       $(OBJS)\test_gui_label.obj \\r
        $(OBJS)\test_gui_listctrltest.obj \\r
        $(OBJS)\test_gui_textctrltest.obj \\r
        $(OBJS)\test_gui_textentrytest.obj \\r
        $(OBJS)\test_gui_listctrltest.obj \\r
        $(OBJS)\test_gui_textctrltest.obj \\r
        $(OBJS)\test_gui_textentrytest.obj \\r
@@ -141,7 +142,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_garbage.obj \\r
        $(OBJS)\test_gui_settings.obj \\r
        $(OBJS)\test_gui_socket.obj \\r
        $(OBJS)\test_gui_garbage.obj \\r
        $(OBJS)\test_gui_settings.obj \\r
        $(OBJS)\test_gui_socket.obj \\r
-       $(OBJS)\test_gui_boxsizer.obj \
+       $(OBJS)\test_gui_boxsizer.obj \\r
        $(OBJS)\test_gui_clientsize.obj \\r
        $(OBJS)\test_gui_setsize.obj\r
 \r
        $(OBJS)\test_gui_clientsize.obj \\r
        $(OBJS)\test_gui_setsize.obj\r
 \r
@@ -644,6 +645,9 @@ $(OBJS)\test_gui_comboboxtest.obj: .\controls\comboboxtest.cpp
 $(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp\r
 \r
 $(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp\r
 \r
+$(OBJS)\test_gui_label.obj: .\controls\label.cpp\r
+       $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\label.cpp\r
+\r
 $(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp\r
 \r
 $(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp\r
 \r
@@ -689,9 +693,9 @@ $(OBJS)\test_gui_settings.obj: .\misc\settings.cpp
 $(OBJS)\test_gui_socket.obj: .\net\socket.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp\r
 \r
 $(OBJS)\test_gui_socket.obj: .\net\socket.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp\r
 \r
-$(OBJS)\test_gui_boxsizer.obj: .\sizers\boxsizer.cpp
-       $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\sizers\boxsizer.cpp
-
+$(OBJS)\test_gui_boxsizer.obj: .\sizers\boxsizer.cpp\r
+       $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\sizers\boxsizer.cpp\r
+\r
 $(OBJS)\test_gui_clientsize.obj: .\window\clientsize.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\window\clientsize.cpp\r
 \r
 $(OBJS)\test_gui_clientsize.obj: .\window\clientsize.cpp\r
        $(CXX) -q -c -P -o$@ $(TEST_GUI_CXXFLAGS) .\window\clientsize.cpp\r
 \r
index 1595d84da855a81b9d86bd0b9bfafb515f071c9d..1aeb186b2923aa11ee09925e29f78843711a693d 100644 (file)
@@ -120,6 +120,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_config.o \\r
        $(OBJS)\test_gui_comboboxtest.o \\r
        $(OBJS)\test_gui_headerctrltest.o \\r
        $(OBJS)\test_gui_config.o \\r
        $(OBJS)\test_gui_comboboxtest.o \\r
        $(OBJS)\test_gui_headerctrltest.o \\r
+       $(OBJS)\test_gui_label.o \\r
        $(OBJS)\test_gui_listctrltest.o \\r
        $(OBJS)\test_gui_textctrltest.o \\r
        $(OBJS)\test_gui_textentrytest.o \\r
        $(OBJS)\test_gui_listctrltest.o \\r
        $(OBJS)\test_gui_textctrltest.o \\r
        $(OBJS)\test_gui_textentrytest.o \\r
@@ -135,7 +136,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_garbage.o \\r
        $(OBJS)\test_gui_settings.o \\r
        $(OBJS)\test_gui_socket.o \\r
        $(OBJS)\test_gui_garbage.o \\r
        $(OBJS)\test_gui_settings.o \\r
        $(OBJS)\test_gui_socket.o \\r
-       $(OBJS)\test_gui_boxsizer.o \
+       $(OBJS)\test_gui_boxsizer.o \\r
        $(OBJS)\test_gui_clientsize.o \\r
        $(OBJS)\test_gui_setsize.o\r
 \r
        $(OBJS)\test_gui_clientsize.o \\r
        $(OBJS)\test_gui_setsize.o\r
 \r
@@ -626,6 +627,9 @@ $(OBJS)\test_gui_comboboxtest.o: ./controls/comboboxtest.cpp
 $(OBJS)\test_gui_headerctrltest.o: ./controls/headerctrltest.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
 $(OBJS)\test_gui_headerctrltest.o: ./controls/headerctrltest.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\test_gui_label.o: ./controls/label.cpp\r
+       $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
+\r
 $(OBJS)\test_gui_listctrltest.o: ./controls/listctrltest.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
 $(OBJS)\test_gui_listctrltest.o: ./controls/listctrltest.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -671,9 +675,9 @@ $(OBJS)\test_gui_settings.o: ./misc/settings.cpp
 $(OBJS)\test_gui_socket.o: ./net/socket.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
 $(OBJS)\test_gui_socket.o: ./net/socket.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
-$(OBJS)\test_gui_boxsizer.o: ./sizers/boxsizer.cpp
-       $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<
-
+$(OBJS)\test_gui_boxsizer.o: ./sizers/boxsizer.cpp\r
+       $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
+\r
 $(OBJS)\test_gui_clientsize.o: ./window/clientsize.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
 $(OBJS)\test_gui_clientsize.o: ./window/clientsize.cpp\r
        $(CXX) -c -o $@ $(TEST_GUI_CXXFLAGS) $(CPPDEPS) $<\r
 \r
index 04e39ba393ec04d077ec6e72eb8c244aca1869c1..6ca56cd97daae2eb9293630e36034060319f8c61 100644 (file)
@@ -121,6 +121,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_config.obj \\r
        $(OBJS)\test_gui_comboboxtest.obj \\r
        $(OBJS)\test_gui_headerctrltest.obj \\r
        $(OBJS)\test_gui_config.obj \\r
        $(OBJS)\test_gui_comboboxtest.obj \\r
        $(OBJS)\test_gui_headerctrltest.obj \\r
+       $(OBJS)\test_gui_label.obj \\r
        $(OBJS)\test_gui_listctrltest.obj \\r
        $(OBJS)\test_gui_textctrltest.obj \\r
        $(OBJS)\test_gui_textentrytest.obj \\r
        $(OBJS)\test_gui_listctrltest.obj \\r
        $(OBJS)\test_gui_textctrltest.obj \\r
        $(OBJS)\test_gui_textentrytest.obj \\r
@@ -136,7 +137,7 @@ TEST_GUI_OBJECTS =  \
        $(OBJS)\test_gui_garbage.obj \\r
        $(OBJS)\test_gui_settings.obj \\r
        $(OBJS)\test_gui_socket.obj \\r
        $(OBJS)\test_gui_garbage.obj \\r
        $(OBJS)\test_gui_settings.obj \\r
        $(OBJS)\test_gui_socket.obj \\r
-       $(OBJS)\test_gui_boxsizer.obj \
+       $(OBJS)\test_gui_boxsizer.obj \\r
        $(OBJS)\test_gui_clientsize.obj \\r
        $(OBJS)\test_gui_setsize.obj\r
 TEST_GUI_RESOURCES =  \\r
        $(OBJS)\test_gui_clientsize.obj \\r
        $(OBJS)\test_gui_setsize.obj\r
 TEST_GUI_RESOURCES =  \\r
@@ -770,6 +771,9 @@ $(OBJS)\test_gui_comboboxtest.obj: .\controls\comboboxtest.cpp
 $(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp\r
 \r
 $(OBJS)\test_gui_headerctrltest.obj: .\controls\headerctrltest.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\headerctrltest.cpp\r
 \r
+$(OBJS)\test_gui_label.obj: .\controls\label.cpp\r
+       $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\label.cpp\r
+\r
 $(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp\r
 \r
 $(OBJS)\test_gui_listctrltest.obj: .\controls\listctrltest.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\controls\listctrltest.cpp\r
 \r
@@ -815,9 +819,9 @@ $(OBJS)\test_gui_settings.obj: .\misc\settings.cpp
 $(OBJS)\test_gui_socket.obj: .\net\socket.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp\r
 \r
 $(OBJS)\test_gui_socket.obj: .\net\socket.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\net\socket.cpp\r
 \r
-$(OBJS)\test_gui_boxsizer.obj: .\sizers\boxsizer.cpp
-       $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\sizers\boxsizer.cpp
-
+$(OBJS)\test_gui_boxsizer.obj: .\sizers\boxsizer.cpp\r
+       $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\sizers\boxsizer.cpp\r
+\r
 $(OBJS)\test_gui_clientsize.obj: .\window\clientsize.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\window\clientsize.cpp\r
 \r
 $(OBJS)\test_gui_clientsize.obj: .\window\clientsize.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(TEST_GUI_CXXFLAGS) .\window\clientsize.cpp\r
 \r
index f6da0821db583175d1b8203bf46b388edfb99ff0..299502875f6579fff96f52e4ac5f27a98223dfc0 100644 (file)
@@ -364,6 +364,7 @@ TEST_GUI_OBJECTS =  &
        $(OBJS)\test_gui_config.obj &\r
        $(OBJS)\test_gui_comboboxtest.obj &\r
        $(OBJS)\test_gui_headerctrltest.obj &\r
        $(OBJS)\test_gui_config.obj &\r
        $(OBJS)\test_gui_comboboxtest.obj &\r
        $(OBJS)\test_gui_headerctrltest.obj &\r
+       $(OBJS)\test_gui_label.obj &\r
        $(OBJS)\test_gui_listctrltest.obj &\r
        $(OBJS)\test_gui_textctrltest.obj &\r
        $(OBJS)\test_gui_textentrytest.obj &\r
        $(OBJS)\test_gui_listctrltest.obj &\r
        $(OBJS)\test_gui_textctrltest.obj &\r
        $(OBJS)\test_gui_textentrytest.obj &\r
@@ -379,7 +380,7 @@ TEST_GUI_OBJECTS =  &
        $(OBJS)\test_gui_garbage.obj &\r
        $(OBJS)\test_gui_settings.obj &\r
        $(OBJS)\test_gui_socket.obj &\r
        $(OBJS)\test_gui_garbage.obj &\r
        $(OBJS)\test_gui_settings.obj &\r
        $(OBJS)\test_gui_socket.obj &\r
-       $(OBJS)\test_gui_boxsizer.obj &
+       $(OBJS)\test_gui_boxsizer.obj &\r
        $(OBJS)\test_gui_clientsize.obj &\r
        $(OBJS)\test_gui_setsize.obj\r
 \r
        $(OBJS)\test_gui_clientsize.obj &\r
        $(OBJS)\test_gui_setsize.obj\r
 \r
@@ -681,6 +682,9 @@ $(OBJS)\test_gui_comboboxtest.obj :  .AUTODEPEND .\controls\comboboxtest.cpp
 $(OBJS)\test_gui_headerctrltest.obj :  .AUTODEPEND .\controls\headerctrltest.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
 $(OBJS)\test_gui_headerctrltest.obj :  .AUTODEPEND .\controls\headerctrltest.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
+$(OBJS)\test_gui_label.obj :  .AUTODEPEND .\controls\label.cpp\r
+       $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
+\r
 $(OBJS)\test_gui_listctrltest.obj :  .AUTODEPEND .\controls\listctrltest.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
 $(OBJS)\test_gui_listctrltest.obj :  .AUTODEPEND .\controls\listctrltest.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
@@ -726,9 +730,9 @@ $(OBJS)\test_gui_settings.obj :  .AUTODEPEND .\misc\settings.cpp
 $(OBJS)\test_gui_socket.obj :  .AUTODEPEND .\net\socket.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
 $(OBJS)\test_gui_socket.obj :  .AUTODEPEND .\net\socket.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
-$(OBJS)\test_gui_boxsizer.obj :  .AUTODEPEND .\sizers\boxsizer.cpp
-       $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<
-
+$(OBJS)\test_gui_boxsizer.obj :  .AUTODEPEND .\sizers\boxsizer.cpp\r
+       $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
+\r
 $(OBJS)\test_gui_clientsize.obj :  .AUTODEPEND .\window\clientsize.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
 $(OBJS)\test_gui_clientsize.obj :  .AUTODEPEND .\window\clientsize.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(TEST_GUI_CXXFLAGS) $<\r
 \r
index edb0c7ea8fecc4386dc7eb6adb16759e9c9c23be..4b85193a27c03d2e1ce76e8e4bb8f0d8f4f82424 100644 (file)
             config/config.cpp
             controls/comboboxtest.cpp
             controls/headerctrltest.cpp
             config/config.cpp
             controls/comboboxtest.cpp
             controls/headerctrltest.cpp
+            controls/label.cpp
             controls/listctrltest.cpp
             controls/textctrltest.cpp
             controls/textentrytest.cpp
             controls/listctrltest.cpp
             controls/textctrltest.cpp
             controls/textentrytest.cpp
index bb0d6829280142a5b81a2ed9da150f5f506bf56d..afb37c53319e4192d071ff8b05e1cb6ad217b1b2 100644 (file)
@@ -235,10 +235,10 @@ LINK32=link.exe
 # PROP Default_Filter ""\r
 # Begin Source File\r
 \r
 # PROP Default_Filter ""\r
 # Begin Source File\r
 \r
-SOURCE=.\sizers\boxsizer.cpp
-# End Source File
-# Begin Source File
-
+SOURCE=.\sizers\boxsizer.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\window\clientsize.cpp\r
 # End Source File\r
 # Begin Source File\r
 SOURCE=.\window\clientsize.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -293,6 +293,10 @@ SOURCE=.\image\image.cpp
 # End Source File\r
 # Begin Source File\r
 \r
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=.\controls\label.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\controls\listctrltest.cpp\r
 # End Source File\r
 # Begin Source File\r
 SOURCE=.\controls\listctrltest.cpp\r
 # End Source File\r
 # Begin Source File\r
index ae44f24eacfbf381d4afd4c10ae2dd81e6464117..dd00cfe5de5ae5415b3652606b6452bcefe7885c 100644 (file)
                        Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">\r
                        <File\r
                        Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">\r
                        <File\r
-                               RelativePath=".\sizers\boxsizer.cpp">
-                       </File>
-                       <File
+                               RelativePath=".\sizers\boxsizer.cpp">\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\window\clientsize.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath=".\window\clientsize.cpp">\r
                        </File>\r
                        <File\r
                        <File\r
                                RelativePath=".\image\image.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath=".\image\image.cpp">\r
                        </File>\r
+                       <File\r
+                               RelativePath=".\controls\label.cpp">\r
+                       </File>\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp">\r
                        </File>\r
index 54314be5b87699b1724f6b690088649e96991a8c..7ce61f53c7b4326b600dd9613cd367ddbddc1c49 100644 (file)
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\sizers\boxsizer.cpp"
-                               >
-                       </File>
-                       <File
+                               RelativePath=".\sizers\boxsizer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\window\clientsize.cpp"\r
                                >\r
                        </File>\r
                                RelativePath=".\window\clientsize.cpp"\r
                                >\r
                        </File>\r
                                RelativePath=".\image\image.cpp"\r
                                >\r
                        </File>\r
                                RelativePath=".\image\image.cpp"\r
                                >\r
                        </File>\r
+                       <File\r
+                               RelativePath=".\controls\label.cpp"\r
+                               >\r
+                       </File>\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp"\r
                                >\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp"\r
                                >\r
index 761934ff67c7b9f71b934ac2fb03dbea42064769..fd6952f626940b6af413b75963553f2cff751edf 100644 (file)
@@ -1,10 +1,16 @@
 <?xml version="1.0" encoding="Windows-1252"?>\r
 <?xml version="1.0" encoding="Windows-1252"?>\r
+<!--\r
+\r
+  This project was generated by\r
+  Bakefile 0.2.8 (http://www.bakefile.org)\r
+  Do not modify, all changes will be overwritten!\r
+\r
+-->\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="9.00"\r
        Name="test_gui"\r
        ProjectGUID="{9BB295D9-A6AA-510D-AA0D-9375B5D91025}"\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="9.00"\r
        Name="test_gui"\r
        ProjectGUID="{9BB295D9-A6AA-510D-AA0D-9375B5D91025}"\r
-       TargetFrameworkVersion="0"
        >\r
        <Platforms>\r
                <Platform\r
        >\r
        <Platforms>\r
                <Platform\r
@@ -12,6 +18,7 @@
                />\r
        </Platforms>\r
        <ToolFiles>\r
                />\r
        </Platforms>\r
        <ToolFiles>\r
+               \r
        </ToolFiles>\r
        <Configurations>\r
                <Configuration\r
        </ToolFiles>\r
        <Configurations>\r
                <Configuration\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswud\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswud\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswu\test_gui.pdb"\r
                                SubSystem="1"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswu\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswu\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswu\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivu\test_gui.pdb"\r
                                SubSystem="1"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivu\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswudll\test_gui.pdb"\r
                                SubSystem="1"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswudll\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswudll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswudll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivudll\test_gui.pdb"\r
                                SubSystem="1"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivudll\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                </Configuration>\r
        </Configurations>\r
        <References>\r
                </Configuration>\r
        </Configurations>\r
        <References>\r
+               \r
        </References>\r
        <Files>\r
                <Filter\r
        </References>\r
        <Files>\r
                <Filter\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\sizers\boxsizer.cpp"
-                               >
-                       </File>
-                       <File
+                               RelativePath=".\sizers\boxsizer.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\window\clientsize.cpp"\r
                                >\r
                                RelativePath=".\window\clientsize.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\events\clone.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\events\clone.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\graphics\colour.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\graphics\colour.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\controls\comboboxtest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\comboboxtest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\config\config.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\config\config.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\dummy.cpp"\r
                        </File>\r
                        <File\r
                                RelativePath=".\dummy.cpp"\r
                        <File\r
                                RelativePath=".\font\fonttest.cpp"\r
                                >\r
                        <File\r
                                RelativePath=".\font\fonttest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\misc\garbage.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\misc\garbage.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\misc\guifuncs.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\misc\guifuncs.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\controls\headerctrltest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\headerctrltest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\html\htmlwindow.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\html\htmlwindow.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\image\image.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\image\image.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
+                       </File>\r
+                       <File\r
+                               RelativePath=".\controls\label.cpp"\r
+                               >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\listctrltest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\graphics\measuring.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\graphics\measuring.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\point.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\point.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\events\propagation.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\events\propagation.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\image\rawbmp.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\image\rawbmp.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\rect.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\rect.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\misc\selstoretest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\misc\selstoretest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\window\setsize.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\window\setsize.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\misc\settings.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\misc\settings.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\size.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\geometry\size.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\net\socket.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\net\socket.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\test.cpp"\r
                        </File>\r
                        <File\r
                                RelativePath=".\test.cpp"\r
                        <File\r
                                RelativePath=".\controls\textctrltest.cpp"\r
                                >\r
                        <File\r
                                RelativePath=".\controls\textctrltest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\controls\textentrytest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\textentrytest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\controls\treectrltest.cpp"\r
                                >\r
                        </File>\r
                        <File\r
                                RelativePath=".\controls\treectrltest.cpp"\r
                                >\r
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                </Filter>\r
                <Filter\r
                        </File>\r
                </Filter>\r
                <Filter\r
                </Filter>\r
        </Files>\r
        <Globals>\r
                </Filter>\r
        </Files>\r
        <Globals>\r
+               \r
        </Globals>\r
 </VisualStudioProject>\r
        </Globals>\r
 </VisualStudioProject>\r
+\r