self.name = name
         self.buffer = ''
     def write(self, data):
-        self.buffer += data.encode()
+        self.buffer += data.encode(g.currentEncoding)
     def close(self):
         wxMemoryFSHandler_AddFile(self.name, self.buffer)
 
     BITMAP_BUTTON = wxNewId()
     RADIO_BUTTON = wxNewId()
     SPIN_BUTTON = wxNewId()
+    TOGGLE_BUTTON = wxNewId()
 
     STATIC_BOX = wxNewId()
     CHECK_BOX = wxNewId()
     LIST_CTRL = wxNewId()
     CHECK_LIST = wxNewId()
     NOTEBOOK = wxNewId()
+    SPLITTER_WINDOW = wxNewId()
     SCROLLED_WINDOW = wxNewId()
     HTML_WINDOW = wxNewId()
     CALENDAR_CTRL = wxNewId()
             ID_NEW.BITMAP_BUTTON: 'wxBitmapButton',
             ID_NEW.RADIO_BUTTON: 'wxRadioButton',
             ID_NEW.SPIN_BUTTON: 'wxSpinButton',
+            ID_NEW.TOGGLE_BUTTON: 'wxToggleButton',
 
             ID_NEW.STATIC_BOX: 'wxStaticBox',
             ID_NEW.CHECK_BOX: 'wxCheckBox',
             ID_NEW.SCROLL_BAR: 'wxScrollBar',
             ID_NEW.TREE_CTRL: 'wxTreeCtrl',
             ID_NEW.LIST_CTRL: 'wxListCtrl',
-            ID_NEW.CHECK_LIST: 'wxCheckList',
+            ID_NEW.CHECK_LIST: 'wxCheckListBox',
             ID_NEW.NOTEBOOK: 'wxNotebook',
+            ID_NEW.SPLITTER_WINDOW: 'wxSplitterWindow',
             ID_NEW.SCROLLED_WINDOW: 'wxScrolledWindow',
             ID_NEW.HTML_WINDOW: 'wxHtmlWindow',
             ID_NEW.CALENDAR_CTRL: 'wxCalendarCtrl',
         self.containers = [
              (ID_NEW.PANEL, 'Panel', 'Create panel'),
              (ID_NEW.NOTEBOOK, 'Notebook', 'Create notebook control'),
+             (ID_NEW.SPLITTER_WINDOW, 'SplitterWindow', 'Create splitter window'),
              (ID_NEW.TOOL_BAR, 'ToolBar', 'Create toolbar'),
             ]
         self.sizers = [
              (ID_NEW.BITMAP_BUTTON, 'BitmapButton', 'Create bitmap button'),
              (ID_NEW.RADIO_BUTTON, 'RadioButton', 'Create radio button'),
              (ID_NEW.SPIN_BUTTON, 'SpinButton', 'Create spin button'),
+             (ID_NEW.TOGGLE_BUTTON, 'ToggleButton', 'Create toggle button'),
              ],
             ['box', 'Boxes',
              (ID_NEW.STATIC_BOX, 'StaticBox', 'Create static box'),
             ['container', 'Containers',
              (ID_NEW.PANEL, 'Panel', 'Create panel'),
              (ID_NEW.NOTEBOOK, 'Notebook', 'Create notebook control'),
+             (ID_NEW.SPLITTER_WINDOW, 'SplitterWindow', 'Create splitter window'),
              (ID_NEW.TOOL_BAR, 'ToolBar', 'Create toolbar'),
              ],
             ['sizer', 'Sizers',
             # Find position
             for i in range(notebook.GetPageCount()):
                 if notebook.GetPage(i) == obj:
-                    if notebook.GetSelection() != i: notebook.SetSelection(i)
+                    if notebook.GetSelection() != i:
+                        notebook.SetSelection(i)
+                        # Remove highlight - otherwise highlight window won't be visible
+                        if g.testWin.highLight:
+                            g.testWin.highLight.Remove()
                     break
         # Find first ancestor which is a wxWindow (not a sizer)
         winParent = itemParent
         while self.GetPyData(winParent).isSizer:
             winParent = self.GetItemParent(winParent)
-        parentPos = self.FindNodePos(winParent)
+        # Notebook children are layed out in a little strange way
+        if self.GetPyData(itemParent).treeObject().__class__ == xxxNotebook:
+            parentPos = wxPoint(0,0)
+        else:
+            parentPos = self.FindNodePos(winParent)
         # Position (-1,-1) is really (0,0)
         pos = obj.GetPosition()
         if pos == (-1,-1): pos = (0,0)
         return child
 
     def OnSelChanged(self, evt):
+        self.ChangeSelection(evt.GetItem())
+
+    def ChangeSelection(self, item):
         # Apply changes
         # !!! problem with wxGTK - GetOldItem is Ok if nothing selected
         #oldItem = evt.GetOldItem()
                 status = 'Changes were applied'
         g.frame.SetStatusText(status)
         # Generate view
-        self.selection = evt.GetItem()
+        self.selection = item
         if not self.selection.IsOk():
             self.selection = None
             return
                 testWin.panel = testWin
                 testWin.CreateStatusBar()
                 testWin.SetClientSize(testWin.GetBestSize())
-                testWin.panel = testWin
                 testWin.SetPosition(pos)
                 testWin.Show(True)
             elif xxx.__class__ == xxxPanel: