/// <summary>
        /// Manejador del evento provocado al hacer click en el boton de abrir una
        /// base de datos nueva.
        /// </summary>
        private void OnNewDatabaseClicked(object sender, EventArgs arg)
        {
            SaveDatabase();

            NewDatabaseAsisstant assistant =
                new NewDatabaseAsisstant(mainWindow);

            ResponseType res = assistant.Run();

            if (res == ResponseType.Ok)
            {
                SetDatabase(assistant.Database);

                LoadNewImages(assistant.Images);

                nextImageBtn.Sensitive = true;

                SetTitle("");
                SetModified(false);
                LogLine("¡Nueva base de datos creada con éxito!");
            }
            else
            {
                LogLine("Creación de base de datos cancelada");
            }

            assistant.Destroy();
        }
        /// <summary>
        /// <c>MainLearnerWindow</c>'s parametriced constructor.
        /// </summary>
        /// <param name="parent">
        /// The windo's parent window.
        /// </param>
        /// <param name="inputDatabase">
        /// A database to be loaded upon start.
        /// </param>
        /// <param name="inputDatabasePath">
        /// The path of the input database.
        /// </param>
        /// <param name="inputImage">
        /// An image to be learned upon start.
        /// </param>
        public MainLearnerWindow(Gtk.Window parent,
                                 MathTextDatabase inputDatabase,
                                 string inputDatabasePath,
                                 Pixbuf inputImage,
                                 string inputImageName)
        {
            Glade.XML gxml = new Glade.XML(null,
                                           "mathtextlearner.glade",
                                           "mainWindow",
                                           null);

            gxml.Autoconnect(this);

            Initialize();

            if (parent != null)
            {
                mainWindow.Modal        = true;
                mainWindow.TransientFor = parent;
            }

            // We try loading the image.

            if (inputDatabase != null)
            {
                // We have to load a database.
                SetDatabase(inputDatabase);

                SetTitle(inputDatabasePath);

                if (inputImage != null)
                {
                    LoadNewImage(inputImage);
                }
            }
            else if (inputImage != null)
            {
                // We haven't specified a database, but want to learn and image,
                // so we launch the new database wizard, and add that image.
                NewDatabaseAsisstant assistant =
                    new NewDatabaseAsisstant(mainWindow,
                                             inputImage,
                                             inputImageName);

                ResponseType res = assistant.Run();
                if (res == ResponseType.Ok)
                {
                    SetDatabase(assistant.Database);

                    LoadNewImages(assistant.Images);
                }

                assistant.Destroy();
            }

            mainWindow.Icon = ImageResources.LoadPixbuf("mathtextlearner16");
        }