Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // MCPL.MyFontClass.cs 19-Jan-2019 by -JpE-
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // REM: Brought in fresh to MCPL and adapted
- // (MCPL=MyCustomPrintLibrary) to PB with an
- // eye towards switching ME Print related
- // calls to MCPL eventually, BUT NOT YET.
- //\\//\\//\\ ** Design Note: ** //\\//\\//\\
- // Custom Colors not needed, just use the
- // colors in the Font Dialog for now and
- // begin to workout RTF file Print details
- // for the overall Class Library. (.dll)
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // v5.0.5.99 19-Jan-2019 Initial Integration
- // v5.0.6.00 03-Feb-2019 Simplified Perfect.
- // v5.0.6.01 26-Feb-2019 Really Getin tharZ.
- // v5.0.6.03 14-Mar-2019 ReSetPages Call.
- // v5.1.7.10 25-Apr Instance-N Font stuff.
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- using System;
- using System.Drawing;
- using System.Threading;
- using System.Windows.Forms;
- // Class Aliases
- using MCC = MyCustomControls.CustomControl;
- using MCT = MyCustomLibrary.MyToolbox;
- using MPC = MyCustomPrintLibrary.MyPrintClass;
- // Properties Aliases
- using MPR = MyCustomPrintLibrary.Properties.Resources;
- using MPS = MyCustomPrintLibrary.Properties.Settings;
- namespace MyCustomPrintLibrary
- {
- public static class MyFontClass // ==> MFC
- {
- #region PrintFontDialog & Methods, Used by PB.
- /* MyCustomControls Dox
- ****************************
- * O1 = MyOpenDialog;
- * R1 = MyRichTextBox;
- * P1 = MyPrintDialog;
- * P2 = MyPreviewControl;
- * P3 = MyPreviewDialog;
- * D1 = MyPrintDoc;
- * P4 = MyPageSetup;
- * M1 = MyPreviewMenuStrip;
- * M2 = MyColorDialog;
- * F0 = MyFontDialog;
- * S1 = MySaveDialog;
- ****************************
- */
- private static readonly Mutex Pf =
- new Mutex(false, "PrintFontMutex");
- public static FontDialog MyFontDialog
- {
- get { return Fonts; }
- private set { Fonts = value; }
- }
- // ^|
- // || All Inclusive & Eloquently simple.
- // |v
- private static FontDialog Fonts
- {
- get { return GetFontDialog(); }
- set { SetFontDialog(value); }
- }
- // | |
- // | |
- // v v
- private static
- FontDialog GetFontDialog()
- {
- using(MPC.LockOut)
- {
- using(Pf)
- {
- //Pf.WaitOne();
- FontDialog d;
- using (var f = new MCC())
- { d = f.F0; }
- d.Font = new Font(
- MPS.Default.FntNm,
- MPS.Default.FntSz,
- MPS.Default.FntSt,
- MPS.Default.FntGu,
- MPS.Default.FntCs,
- MPS.Default.FntVr);
- d.Color = MPS.Default.PbClr;
- d.HelpRequest += MCT.FontDialogHelp;
- //Pf.ReleaseMutex();
- return d;
- }
- }
- }
- // ^ ^
- // | |
- // | |
- private static void
- SetFontDialog(FontDialog d)
- {
- using(MPC.LockOut)
- {
- using(Pf)
- {
- //Pf.WaitOne();
- MPS.Default.FntNm = d.Font.Name;
- MPS.Default.FntSz = d.Font.Size;
- MPS.Default.FntSt = d.Font.Style;
- MPS.Default.FntGu = d.Font.Unit;
- MPS.Default.FntCs = d.Font.GdiCharSet;
- MPS.Default.FntVr =
- d.Font.GdiVerticalFont;
- MPS.Default.PbClr = d.Color;
- MPS.Default.Save();
- //Pf.ReleaseMutex();
- }
- }
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // Default Font & Color already Set,
- // So never null or void from the Start.
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- public static void SelectPrintFont()
- {
- using (new Mutex(false,
- "MyPrintFontDialogMutex"))
- {
- // Called from PB Thread
- // and may be 1st or 2nd instance.
- var d = MyFontDialog;
- using (d)
- { if (!d.ShowDialog().Equals(
- DialogResult.OK)) return;
- d.HelpRequest -=
- MCT.FontDialogHelp; }
- MyFontDialog = d;
- MPC.ReSetPages();
- }
- }
- #endregion (PB) PrintFontDialog Method Group
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- #region Smesa (Me) Font Property Methods
- public static Color MePrintColor//(Fore)
- {
- get { return Mc1; }
- set { Mc1 = value; }
- }
- private static Color Mc1
- {
- get { using(MPC.LockOut) {
- return MPS.Default.MeClr; } }
- set { using(MPC.LockOut) {
- MPS.Default.MeClr = value;
- MPS.Default.Save(); } }
- }
- public static Font MeFont
- {
- get { return Font1; }
- set { Font1 = value; }
- }
- private static Font Font1
- {
- get { return GetMeFont(); }
- set { SetMeFont(value); }
- }
- private static readonly Mutex Me = new
- Mutex(false, "MeFontMutex04252019");
- private static Font GetMeFont()
- {
- using (MPC.LockOut)
- {
- using (Me)
- {
- //Me.WaitOne();
- var t = Control.DefaultFont;
- try { using (var f = new Font(
- MPS.Default.FtNm, MPS.Default.FtSz,
- MPS.Default.FtSt, MPS.Default.FtGu,
- MPS.Default.FtCs, MPS.Default.FtVr))
- { t = f; } }
- catch (ArgumentException)
- { try { using (var d = new MCC())
- { t = d.F0.Font; } }
- catch(ArgumentException) { } }
- //Me.ReleaseMutex();
- return t;
- }
- }
- }
- private static void SetMeFont(Font f)
- {
- using (MPC.LockOut)
- {
- using (Me)
- {
- //Me.WaitOne();
- MPS.Default.FtNm = f.Name;
- MPS.Default.FtSz = f.Size;
- MPS.Default.FtSt = f.Style;
- MPS.Default.FtGu = f.Unit;
- MPS.Default.FtCs = f.GdiCharSet;
- MPS.Default.FtVr = f.GdiVerticalFont;
- MPS.Default.Save();
- //Me.ReleaseMutex();
- }
- }
- }
- #endregion Smesa Font Property Method Group
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement