/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.mainTabControl = new OpenLiveWriter.Controls.LightweightControlContainerControl(); this.btnInsert = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.copyrightLinkLabel = new System.Windows.Forms.LinkLabel(); ((System.ComponentModel.ISupportInitialize)(this.mainTabControl)).BeginInit(); this.SuspendLayout(); // // mainTabControl // this.mainTabControl.AllowDragDropAutoScroll = false; this.mainTabControl.AllPaintingInWmPaint = true; this.mainTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.mainTabControl.BackColor = System.Drawing.SystemColors.Control; this.mainTabControl.Location = new System.Drawing.Point(0, 0); this.mainTabControl.Name = "mainTabControl"; this.mainTabControl.Size = new System.Drawing.Size(450, 485); this.mainTabControl.TabIndex = 14; // // btnInsert // this.btnInsert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnInsert.FlatStyle = System.Windows.Forms.FlatStyle.System; this.btnInsert.Location = new System.Drawing.Point(288, 490); this.btnInsert.Name = "buttonInsert"; this.btnInsert.TabIndex = 20; this.btnInsert.Text = "Insert"; this.btnInsert.Click += new System.EventHandler(this.btnInsert_Click); // // btnCancel // this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; this.btnCancel.Location = new System.Drawing.Point(368, 490); this.btnCancel.Name = "buttonCancel"; this.btnCancel.TabIndex = 21; this.btnCancel.Text = "Cancel"; // // copyrightLinkLabel // this.copyrightLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.copyrightLinkLabel.AutoSize = true; this.copyrightLinkLabel.FlatStyle = System.Windows.Forms.FlatStyle.System; this.copyrightLinkLabel.Location = new System.Drawing.Point(6, 496); this.copyrightLinkLabel.Name = "copyrightLinkLabel"; this.copyrightLinkLabel.Size = new System.Drawing.Size(208, 18); this.copyrightLinkLabel.TabIndex = 19; this.copyrightLinkLabel.TabStop = true; this.copyrightLinkLabel.Text = "Please Respect Copyright"; // // VideoBrowserForm // this.AcceptButton = this.btnInsert; this.AutoScaleBaseSize = new System.Drawing.Size(5, 14); this.CancelButton = this.btnCancel; this.ClientSize = new System.Drawing.Size(450, 520); this.Controls.Add(this.copyrightLinkLabel); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnInsert); this.Controls.Add(this.mainTabControl); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "VideoBrowserForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Insert Video"; ((System.ComponentModel.ISupportInitialize)(this.mainTabControl)).EndInit(); this.ResumeLayout(false); }
public LightweightControlContainerAccessibility(LightweightControlContainerControl containerControl) : base(containerControl) { _containerControl = containerControl; }
internal LCCCFocusAndAccessibilityController(LightweightControlContainerControl control, bool wrap) : this(control) { _wrap = wrap; }
internal LCCCFocusAndAccessibilityController(LightweightControlContainerControl control) { _control = control; _controls = new ArrayList(); }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.mainTabControl = new OpenLiveWriter.Controls.LightweightControlContainerControl(); this.buttonInsert = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.copyrightLinkLabel = new System.Windows.Forms.LinkLabel(); ((System.ComponentModel.ISupportInitialize)(this.mainTabControl)).BeginInit(); this.SuspendLayout(); // // mainTabControl // this.mainTabControl.AllowDragDropAutoScroll = false; this.mainTabControl.AllPaintingInWmPaint = true; this.mainTabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.mainTabControl.BackColor = System.Drawing.SystemColors.Control; this.mainTabControl.Location = new System.Drawing.Point(0, 0); this.mainTabControl.Name = "mainTabControl"; this.mainTabControl.Size = new System.Drawing.Size(450, 480); this.mainTabControl.TabIndex = 14; // // buttonInsert // this.buttonInsert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.buttonInsert.DialogResult = System.Windows.Forms.DialogResult.OK; this.buttonInsert.FlatStyle = System.Windows.Forms.FlatStyle.System; this.buttonInsert.Location = new System.Drawing.Point(282, 486); this.buttonInsert.Name = "buttonInsert"; this.buttonInsert.Size = new System.Drawing.Size(75, 23); this.buttonInsert.TabIndex = 20; this.buttonInsert.Text = "Insert"; // // btnCancel // this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; this.btnCancel.Location = new System.Drawing.Point(363, 486); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.TabIndex = 21; this.btnCancel.Text = "Cancel"; // // copyrightLinkLabel // this.copyrightLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.copyrightLinkLabel.AutoSize = true; this.copyrightLinkLabel.FlatStyle = System.Windows.Forms.FlatStyle.System; this.copyrightLinkLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; this.copyrightLinkLabel.LinkColor = System.Drawing.SystemColors.HotTrack; this.copyrightLinkLabel.Location = new System.Drawing.Point(7, 493); this.copyrightLinkLabel.Name = "copyrightLinkLabel"; this.copyrightLinkLabel.Size = new System.Drawing.Size(140, 15); this.copyrightLinkLabel.TabIndex = 19; this.copyrightLinkLabel.TabStop = true; this.copyrightLinkLabel.Text = "Please Respect Copyright"; // // MediaInsertForm // this.AcceptButton = this.buttonInsert; this.CancelButton = this.btnCancel; this.ClientSize = new System.Drawing.Size(450, 520); this.Controls.Add(this.copyrightLinkLabel); this.Controls.Add(this.btnCancel); this.Controls.Add(this.buttonInsert); this.Controls.Add(this.mainTabControl); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "MediaInsertForm"; this.Text = "Insert Video"; ((System.ComponentModel.ISupportInitialize)(this.mainTabControl)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); }
/// <summary> /// The hook procedure for window messages generated by the FileOpenDialog /// </summary> /// <param name="hWnd">the handle of the window at which this message is targeted</param> /// <param name="msg">the message identifier</param> /// <param name="wParam">message-specific parameter data</param> /// <param name="lParam">mess-specific parameter data</param> /// <returns></returns> public IntPtr MyHookProc(IntPtr hWnd, UInt32 msg, Int32 wParam, Int32 lParam) { try { if (hWnd == IntPtr.Zero) return IntPtr.Zero; switch (msg) { // We're not interested in every possible message; just return a NULL for those we don't care about default: { return IntPtr.Zero; } // WM_INITDIALOG - at this point the OpenFileDialog exists, so we pull the user-supplied control // into the FileOpenDialog now, using the SetParent API. case WM.INITDIALOG: { _hWndParent = User32.GetParent(hWnd); //setting a bool for whether the OS is RTL (not the installed language of WLW) IsRTL = (User32.GetWindowLong(_hWndParent, User32.GWL_EXSTYLE) & User32.WS_EX_LAYOUTRTL) > 0; //account for large title bar, borders for adjusting control locations TITLEBARINFO titleBarInfo = new TITLEBARINFO(); titleBarInfo.cbSize = (uint)Marshal.SizeOf(titleBarInfo); if (!User32.GetTitleBarInfo(_hWndParent, ref titleBarInfo)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } WINDOWINFO info = new WINDOWINFO(); info.cbSize = (uint)Marshal.SizeOf(info); if (!User32.GetWindowInfo(_hWndParent, ref info)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } _extraWindowHeight = (titleBarInfo.rcTitleBar.bottom - titleBarInfo.rcTitleBar.top) + 2 * (int)info.cyWindowBorders; _extraWindowWidth = 2 * (int)info.cxWindowBorders; Rectangle rcClient = new Rectangle(0, 0, 0, 0); // Get client rectangle of dialog RECT rcTemp = new RECT(); User32.GetWindowRect(_hWndParent, ref rcTemp); rcClient.X = rcTemp.left; rcClient.Y = rcTemp.top; rcClient.Width = rcTemp.Width; rcClient.Height = rcTemp.Height + TABS_HEIGHT + BUTTONS_HEIGHT; //make the dialog box bigger User32.MoveWindow(_hWndParent, rcClient.Left, rcClient.Top, rcClient.Width, rcClient.Height, true); //move all the controls down AdjustControlLocations(); //top tab control mainTabControl = new LightweightControlContainerControl(); User32.SetParent(mainTabControl.Handle, _hWndParent); mainTabControl.Location = new Point(0, 0); mainTabControl.Anchor = AnchorStyles.Left | AnchorStyles.Right; mainTabControl.Size = new Size(rcClient.Width, TABS_HEIGHT); tabs = new TabLightweightControl(); tabs.ColorizeBorder = false; tabs.VirtualBounds = new Rectangle(0, 0, rcClient.Width, TABS_HEIGHT); tabs.LightweightControlContainerControl = mainTabControl; tabs.DrawSideAndBottomTabPageBorders = false; InsertImageTabControl tabFromFile = new InsertImageTabControl(); tabFromFile.TabText = Res.Get(StringId.InsertImageInsertFromFile); tabFromFile.TabBitmap = ResourceHelper.LoadAssemblyResourceBitmap("ImageInsertion.Images.TabInsertFromFile.png"); tabFromFile.BackColor = SystemColors.Control; User32.SetParent(tabFromFile.Handle, _hWndParent); tabs.SetTab(0, tabFromFile); mainTabControl.BackColor = tabFromFile.ApplicationStyle.InactiveTabTopColor; //now, add tabs for the other controls int i = 1; foreach (InsertImageSource imageSource in imageSources) { InsertImageTabControl tab = new InsertImageTabControl(); tab.TabText = imageSource.TabName; tab.TabBitmap = imageSource.TabBitmap; tab.BackColor = SystemColors.Control; tabs.SetTab(i++, tab); } tabs.SelectedTabNumberChanged += new EventHandler(tabs_SelectedTabNumberChanged); //set the keyboard hook for tab switching tabKeyboardHook = new TabbingHookProc(tabs); tabKeyboardHook.Install(_hWndParent); //add other image source panels _panelImage = new Panel(); _panelImage.Location = new Point(0, mainTabControl.Size.Height); _panelImage.BorderStyle = BorderStyle.None; _panelImage.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom; _panelImage.Size = new Size(rcClient.Width, rcClient.Height - TABS_HEIGHT - BUTTONS_HEIGHT - _extraWindowHeight); _panelImage.Visible = false; User32.SetParent(_panelImage.Handle, _hWndParent); //initalize the other sources foreach (InsertImageSource source in imageSources) { source.Init(_panelImage.Width, _panelImage.Height); Control c = source.ImageSelectionControls; DisplayHelper.Scale(c); foreach (Control childControl in c.Controls) DisplayHelper.Scale(childControl); } DisplayHelper.Scale(_panelImage); //special cancel button _buttonPanel = new Panel(); _buttonPanel.Location = new Point(rcClient.Width - (int)(0.5 * _extraWindowWidth) - _buttonPanel.Width, _panelImage.Bounds.Bottom); _buttonPanel.Size = new Size(75, 23); _buttonPanel.BorderStyle = BorderStyle.None; _cancelButton = new Button(); _cancelButton.TextAlign = ContentAlignment.MiddleCenter; if (BidiHelper.IsRightToLeft) _cancelButton.RightToLeft = RightToLeft.Yes; _cancelButton.Text = Res.Get(StringId.CancelButton); _cancelButton.FlatStyle = FlatStyle.System; _cancelButton.Location = new Point(0, 0); _cancelButton.Size = new Size(75, 23); _cancelButton.Click += new EventHandler(_cancelButton_Click); _buttonPanel.Controls.Add(_cancelButton); User32.SetParent(_buttonPanel.Handle, _hWndParent); int origWidth = _cancelButton.Width; string tmp = _cancelButton.Text; _cancelButton.Text = Res.Get(StringId.InsertImageButton); int newWidth = Math.Max(origWidth, DisplayHelper.MeasureButton(_cancelButton)); _cancelButton.Text = tmp; newWidth = Math.Max(newWidth, DisplayHelper.MeasureButton(_cancelButton)); _buttonPanel.Width = _cancelButton.Width = newWidth; int deltaX = newWidth - origWidth; _buttonPanel.Left -= deltaX; //fixing up button text and tab order IntPtr hWndOpenButton = User32.GetDlgItem(_hWndParent, _OPEN_BUTTON_ID); User32.SetWindowText(hWndOpenButton, Res.Get(StringId.InsertImageButton)); mainTabControl.InitFocusManager(); mainTabControl.AddFocusableControls(tabs.GetAccessibleControls()); foreach (InsertImageSource tabPage in imageSources) mainTabControl.AddFocusableControl(tabPage.ImageSelectionControls); state = STATE.FILE; return IntPtr.Zero; } case WM.SIZE: { ManipulatePanels(); return IntPtr.Zero; } // WM_NOTIFY - we're only interested in the CDN_SELCHANGE notification message: // we grab the currently-selected filename and copy it into the buffer case WM.NOTIFY: { IntPtr ipNotify = new IntPtr(lParam); OfNotify ofNot = (OfNotify)Marshal.PtrToStructure(ipNotify, typeof(OfNotify)); Int16 code = (short)ofNot.hdr.code; if (code == CommonDlgNotification.SelChange) { UpdateChosenImage(false); //CheckOptions(false); } else if (code == CommonDlgNotification.InitDone) { listener = new CommandListener(_hWndParent, this, (int)User32.GetDlgCtrlID(_cancelButton.Handle)); } else if (code == CommonDlgNotification.FileOk) { // update the image path (need to do this if the user selected // a file by simpliy typing in the filepath text box) UpdateChosenImage(true); // ok to insert _insertFile = true; } else if ((code == CommonDlgNotification.FolderChange) && (state == STATE.WEB)) { // If the user hits the OK button while there is no valid selection // within the File panel, the file dialog sends a CommonDlgNotification.FolderChange // We use this combined with other relevant state to trigger the closing // of the Image dialog HitOpen(); } return IntPtr.Zero; } } } catch (Exception ex) { UnexpectedErrorMessage.Show(ex); return new IntPtr(1); } finally { GC.KeepAlive(this); } }