e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
162 lines
5.0 KiB
C#
162 lines
5.0 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="DesignerForm.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.UI.Design.MobileControls {
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Globalization;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms.Design;
|
|
using System.Web.UI.MobileControls;
|
|
|
|
using Form = System.Windows.Forms.Form;
|
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
/// <devdoc>
|
|
/// Represents a form used by a designer.
|
|
/// </devdoc>
|
|
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
|
|
internal abstract class DesignerForm : Form {
|
|
private const int SC_CONTEXTHELP = 0xF180;
|
|
private const int WM_SYSCOMMAND = 0x0112;
|
|
|
|
private IServiceProvider _serviceProvider;
|
|
private bool _firstActivate;
|
|
|
|
/// <devdoc>
|
|
/// Creates a new DesignerForm with a given service provider.
|
|
/// </devdoc>
|
|
protected DesignerForm(IServiceProvider serviceProvider) {
|
|
Debug.Assert(serviceProvider != null);
|
|
_serviceProvider = serviceProvider;
|
|
|
|
_firstActivate = true;
|
|
|
|
IUIService uiService = (IUIService)GetService(typeof(IUIService));
|
|
if (uiService != null) {
|
|
IDictionary uiStyles = uiService.Styles;
|
|
|
|
Font dialogFont = (Font)uiStyles["DialogFont"];
|
|
Debug.Assert(dialogFont != null, "Did not get a dialog font to use from IUIService");
|
|
|
|
Font = dialogFont;
|
|
}
|
|
|
|
// Set RightToLeft mode based on resource file
|
|
string rtlText = SR.GetString(SR.RTL);
|
|
if (!String.Equals(rtlText, "RTL_False", StringComparison.Ordinal)) {
|
|
RightToLeft = RightToLeft.Yes;
|
|
}
|
|
|
|
HelpButton = true;
|
|
MinimizeBox = false;
|
|
MaximizeBox = false;
|
|
ShowIcon = false;
|
|
ShowInTaskbar = false;
|
|
StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// The service provider for the form.
|
|
/// </devdoc>
|
|
protected internal IServiceProvider ServiceProvider {
|
|
get {
|
|
return _serviceProvider;
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Frees up resources.
|
|
/// </devdoc>
|
|
protected override void Dispose(bool disposing) {
|
|
if (disposing) {
|
|
_serviceProvider = null;
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Gets a service of the desired type. Returns null if the service does not exist or there is no service provider.
|
|
/// </devdoc>
|
|
protected override object GetService(Type serviceType) {
|
|
if (_serviceProvider != null) {
|
|
return _serviceProvider.GetService(serviceType);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
protected override void OnActivated(EventArgs e) {
|
|
base.OnActivated(e);
|
|
|
|
if (_firstActivate) {
|
|
_firstActivate = false;
|
|
OnInitialActivated(e);
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Returns the help topic for the form. Consult with your UE contact on
|
|
/// what the appropriate help topic is for your dialog.
|
|
/// </devdoc>
|
|
protected abstract string HelpTopic {
|
|
get;
|
|
}
|
|
|
|
protected sealed override void OnHelpRequested(HelpEventArgs hevent) {
|
|
ShowHelp();
|
|
hevent.Handled = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Raised upon first activation of the form.
|
|
/// </summary>
|
|
/// <param name="e"></param>
|
|
protected virtual void OnInitialActivated(EventArgs e) {
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Launches the help for this form.
|
|
/// </devdoc>
|
|
private void ShowHelp() {
|
|
if (ServiceProvider != null) {
|
|
IHelpService helpService = (IHelpService)ServiceProvider.GetService(typeof(IHelpService));
|
|
if (helpService != null) {
|
|
helpService.ShowHelpFromKeyword(HelpTopic);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Overridden to reroute the context-help button to our own handler.
|
|
/// </devdoc>
|
|
protected override void WndProc(ref Message m) {
|
|
if ((m.Msg == WM_SYSCOMMAND) && ((int)m.WParam == SC_CONTEXTHELP)) {
|
|
ShowHelp();
|
|
return;
|
|
}
|
|
else {
|
|
base.WndProc(ref m);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|