+static const wxString prefixChecked = "[x] ";
+static const wxString prefixUnchecked = "[ ] ";
+static const char checkChar = 'x', uncheckChar = ' ';
+
+static inline const wxString& Prefix(bool checked)
+ { return checked ? prefixChecked : prefixUnchecked; }
+static inline bool IsChecked(const wxString& s)
+ { wxASSERT(s.length() >=4); return s[1] == checkChar; }
+
+static void CopyStringsAddingPrefix(const wxArrayString& orig,
+ wxArrayString& copy)
+{
+ copy.Clear();
+
+ for(size_t i = 0; i < orig.GetCount(); ++i )
+ copy.Add( Prefix(FALSE) + orig[i] );
+}
+
+static wxString* CopyStringsAddingPrefix(size_t n, const wxString choices[])
+{
+ wxString* copy = new wxString[n];
+
+ for(size_t i = 0; i < n; ++i )
+ copy[i] = Prefix(FALSE) + choices[i];
+
+ return copy;
+}
+