public SearchableGamesListWidget(GameViewerUI viewer)
            {
                HBox box = new HBox ();
                box.PackStart (new
                           Label (Catalog.
                              GetString ("Filter")),
                           false, false, 4);
                searchEntry = new Entry ();
                box.PackStart (searchEntry, true, true, 2);

                PackStart (box, false, true, 2);

                gamesListWidget =
                    new
                    GameViewerGamesListWidget (viewer);

                PackStart (gamesListWidget, true, true, 2);
                ShowAll ();

                filter = new TreeModelFilter (gamesListWidget.
                                  Model, null);
                filter.VisibleFunc = SearchFilterFunc;
                searchEntry.Changed += OnSearch;
            }
            public ChessGameWidget(GameViewerUI viewer)
                : base()
            {
                gameView = new ChessGameView ();
                gamesListWidget =
                    new
                    SearchableGamesListWidget (viewer);

                gameView.ShowNthMove += OnShowNthMoveEvent;

                boardWidget = new ChessGameBoard ();
                book = new Notebook ();

                splitPane = new HPaned ();

                splitPane.Add1 (boardWidget);
                splitPane.Add2 (GetRightPane ());

                PackStart (splitPane, true, true, 2);

                BoardWidget.Board.highLightMove =
                    App.Session.HighLightMove;

                int pos = App.Session.ViewerSplitPanePosition;
                int height = App.Session.ViewerHeight;
                if (pos > height)
                    pos = height / 2;
                splitPane.Position = pos;

                gamesListWidget.View.GameSelectionEvent +=
                    OnGameSelectionEvent;
                viewer.GamesLoadedEvent += OnGamesLoaded;

                ShowAll ();
            }
            public GameViewerGamesListWidget(GameViewerUI
							  viewer)
                : base()
            {
                this.viewer = viewer;
                view.ButtonPressEvent += OnButtonPress;
            }
            public GameViewerWidget(GameViewerUI viewer)
            {
                gamesListWidget =
                    new
                    SearchableGamesListWidget (viewer);
                chessGameWidget = new ChessGameWidget ();

                chessGameWidget.BoardWidget.Board.
                    highLightMove =
                    App.Session.HighLightMove;

                int pos = App.Session.ViewerSplitPanePosition;
                int height = App.Session.ViewerHeight;
                if (pos > height)
                    pos = height / 2;
                chessGameWidget.SplitPane.Position = pos;

                gamesListWidget.View.GameSelectionEvent +=
                    OnGameSelectionEvent;

                AppendPage (gamesListWidget,
                        new Label (Catalog.
                               GetString ("Games")));
                AppendPage (chessGameWidget,
                        new Label (Catalog.
                               GetString
                               ("Current Game")));

                ShowAll ();
                viewer.GamesLoadedEvent += OnGamesLoaded;
            }