]> 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; }
 
+    // set label with mnemonics
     virtual void SetLabel(const wxString& label)
     {
         m_labelOrig = label;
@@ -80,21 +81,19 @@ public:
         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));
     }
 
+    // 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
@@ -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);
 
-    // 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);
 
+
+    // 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,
index f8d7ede736f1e583001f94456e22f2eb3f91a076..f9e202ac1ba5c37863aa79a20ac5757e48b827dd 100644 (file)
@@ -51,16 +51,24 @@ public:
     }
 
     // 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;
 
-    // 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
+    // (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);
 
-    // 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
@@ -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; }
 
-    // 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
index 5823f312628cbc04bb51a5505dccacc6683947f4..eb5bdc7cd5adfd0ed4e1339e0b83e0cee7ad545e 100644 (file)
@@ -94,58 +94,68 @@ public:
     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.
+
+        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;
 
+    /**
+        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);
 
     /**
-        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);
 
     /**
-        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
@@ -167,27 +177,31 @@ public:
     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
-           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
-           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.
@@ -89,23 +89,12 @@ public:
                 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.
 
-        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.
+
         Use GetLabelText() if only the label text is needed.
     */
     wxString GetLabel() const;
@@ -116,29 +105,19 @@ public:
     */
     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;
 
-    /**
-        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
-        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
@@ -146,6 +125,10 @@ public:
 
         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>
@@ -231,6 +214,17 @@ public:
             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
@@ -244,5 +238,34 @@ public:
         @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;
 }
 
-/* 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);
@@ -154,9 +147,17 @@ void wxControlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
 #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)
 {
+    // we don't want strip the TABs here, just the mnemonics
     return wxStripMenuCodes(str, wxStrip_Mnemonics);
 }
 
index e9a22fd8f505823c9088aabdd99fed18451d26b9..95ced81a860ce914c841386b521bd5628362aba2 100644 (file)
@@ -154,15 +154,28 @@ wxString wxStaticTextBase::GetLabelText() const
     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)
 {
-    // remove markup
     wxString ret = RemoveMarkup(label);
+        // always remove the markup (this function is static 
+        // and cannot check for wxST_MARKUP presence/absence)
+
     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
@@ -293,6 +306,17 @@ void wxStaticTextBase::UpdateLabel()
     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
index a2862c2179ed188b3fe52d2b4a022f72f4311609..13096284658f4de803533766e35230d7371b9fc1 100644 (file)
@@ -214,13 +214,13 @@ void wxStaticText::SetLabel(const wxString& label)
     }
 #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 )
-        DoSetLabel(RemoveMarkup(label));
+        DoSetLabel(GetLabelWithoutMarkup());
     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_label.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_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
 
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_label.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_boxsizer.obj \
+       $(OBJS)\test_gui_boxsizer.obj \\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_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
@@ -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_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
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_label.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_boxsizer.o \
+       $(OBJS)\test_gui_boxsizer.o \\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_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
@@ -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_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
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_label.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_boxsizer.obj \
+       $(OBJS)\test_gui_boxsizer.obj \\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_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
@@ -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_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
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_label.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_boxsizer.obj &
+       $(OBJS)\test_gui_boxsizer.obj &\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_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
@@ -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_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
index edb0c7ea8fecc4386dc7eb6adb16759e9c9c23be..4b85193a27c03d2e1ce76e8e4bb8f0d8f4f82424 100644 (file)
             config/config.cpp
             controls/comboboxtest.cpp
             controls/headerctrltest.cpp
+            controls/label.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
-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
@@ -293,6 +293,10 @@ SOURCE=.\image\image.cpp
 # 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
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
-                               RelativePath=".\sizers\boxsizer.cpp">
-                       </File>
-                       <File
+                               RelativePath=".\sizers\boxsizer.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=".\controls\label.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
-                               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=".\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
index 761934ff67c7b9f71b934ac2fb03dbea42064769..fd6952f626940b6af413b75963553f2cff751edf 100644 (file)
@@ -1,10 +1,16 @@
 <?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
-       TargetFrameworkVersion="0"
        >\r
        <Platforms>\r
                <Platform\r
@@ -12,6 +18,7 @@
                />\r
        </Platforms>\r
        <ToolFiles>\r
+               \r
        </ToolFiles>\r
        <Configurations>\r
                <Configuration\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswud\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswud\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswu\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswu\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswu\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivud\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivu\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivu\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswuddll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswudll\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswudll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswudll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivuddll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="vc_mswunivudll\test_gui.pdb"\r
                                SubSystem="1"\r
+                               TargetMachine="1"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               TargetMachine="1"
                        />\r
                        <Tool\r
                                Name="VCALinkTool"\r
                        />\r
                        <Tool\r
                                Name="VCBscMakeTool"\r
+                               OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"\r
                                SuppressStartupBanner="true"\r
-                               OutputFile="vc_mswunivudll\test_vc9_test_gui.bsc"
                        />\r
                        <Tool\r
                                Name="VCFxCopTool"\r
                </Configuration>\r
        </Configurations>\r
        <References>\r
+               \r
        </References>\r
        <Files>\r
                <Filter\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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\dummy.cpp"\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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </File>\r
                        <File\r
                                RelativePath=".\test.cpp"\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
-                               <FileConfiguration
-                                       Name="Debug|Win32"
-                                       ExcludedFromBuild="true"
-                                       >
-                                       <Tool
-                                               Name="VCCLCompilerTool"
-                                       />
-                               </FileConfiguration>
                        </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
                </Filter>\r
        </Files>\r
        <Globals>\r
+               \r
        </Globals>\r
 </VisualStudioProject>\r
+\r