-                            "then Ctrl-Drag it to the lower \n"
-                            "window or to another application\n"
-                            "that accepts BMP's as a drop target.\n\n"
-                            "The lower window is accepting a\n"
-                            "custom data type that is a pickled\n"
-                            "Python list of lines data.")
-        sizer.Add(text, 1, wxALL, 10)
-
-        insizer = wxBoxSizer(wxVERTICAL)
-        insizer.Add(DoodlePad(self, log), 1, wxEXPAND|wxALL, 5)
-        insizer.Add(DoodleViewer(self, log), 1, wxEXPAND|wxALL, 5)
-
-        sizer.Add(insizer, 1, wxEXPAND)
+                            "then switch the mode below and drag the\n"
+                            "picture to the lower window or to another\n"
+                            "application that accepts BMP's as a drop\n"
+                             "target.\n"
+                            )
+
+        rb1 = wxRadioButton(self, -1, "Draw", style=wxRB_GROUP)
+        rb1.SetValue(true)
+        rb2 = wxRadioButton(self, -1, "Drag")
+        rb2.SetValue(false)
+
+        text2 = wxStaticText(self, -1,
+                             "The lower window is accepting a\n"
+                             "custom data type that is a pickled\n"
+                             "Python list of lines data.")
+
+        self.pad = DoodlePad(self, log)
+        view = DoodleViewer(self, log)
+
+        # put them in sizers
+        sizer = wxBoxSizer(wxHORIZONTAL)
+        box = wxBoxSizer(wxVERTICAL)
+        rbox = wxBoxSizer(wxHORIZONTAL)
+
+        rbox.Add(rb1)
+        rbox.Add(rb2)
+        box.Add(text1, 0, wxALL, 10)
+        box.Add(rbox, 0, wxALIGN_CENTER)
+        box.Add(10,90)
+        box.Add(text2, 0, wxALL, 10)
+
+        sizer.Add(box)
+
+        dndsizer = wxBoxSizer(wxVERTICAL)
+        dndsizer.Add(self.pad, 1, wxEXPAND|wxALL, 5)
+        dndsizer.Add(view, 1, wxEXPAND|wxALL, 5)
+
+        sizer.Add(dndsizer, 1, wxEXPAND)
+