/* -*- Mode: C#; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Manticore. * * The Initial Developer of the Original Code is * Silverstone Interactive. * Portions created by the Initial Developer are Copyright (C) 2001 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Ben Goodger * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ namespace Silverstone.Manticore.Browser { using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; using Silverstone.Manticore.Core; /// /// Summary description for UserControl1. /// public class PrefPanel : Panel { /// /// Required designer variable. /// private System.ComponentModel.Container components = null; /// /// Whether or not this panel has been shown before. We defer /// reading preferences and populating UI for preferences panels /// that have not yet been shown. /// private bool mGenerated = false; /// /// Preferences handle /// // LAME - need to use global service thingy. protected internal Preferences mPrefs; /// /// Parent window (Preferences dialog) /// protected internal Form mParent; public PrefPanel(Form aParent, Preferences aPrefs) { // This call is required by the Windows.Forms Form Designer. InitializeComponent(); // LAME oh so lame. mPrefs = aPrefs; mParent = aParent; // All preferences panels have these properties initially. this.Location = new System.Drawing.Point(160, 16); this.Size = new System.Drawing.Size(320, 264); this.TabIndex = 1; this.Visible = false; // When the preference panel is shown for the first time, we // need to fill its fields from preferences. this.VisibleChanged += new EventHandler(VisibilityChanged); } /// /// Called when the visibility of the panel changes. /// /// /// public void VisibilityChanged(Object sender, EventArgs e) { if (!mGenerated) { // The first time we display the panel, read the values // for UI elements from preferences and fill the controls. Load(); mGenerated = true; } } /// /// Implemented by derived class. Reads preferences for each UI element /// the first time this panel is shown, and populates the UI appropriately. /// public virtual void Load() { // Implemented by derived class } /// /// Implemented by derived class. Takes data from UI elements (which may /// be user-manipulated) and saves preferences. /// public virtual void Save() { // Implemented by derived class } /// /// Clean up any resources being used. /// protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Component Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { components = new System.ComponentModel.Container(); } #endregion } }