Advertisement
GlobalAccessSoftware

MyFontClass.cs

Apr 26th, 2019
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.00 KB | None | 0 0
  1.  
  2.  
  3. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  4. // MCPL.MyFontClass.cs 19-Jan-2019 by -JpE-
  5. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  6. // REM: Brought in fresh to MCPL and adapted
  7. // (MCPL=MyCustomPrintLibrary) to PB with an
  8. // eye towards switching ME Print related
  9. // calls to MCPL eventually, BUT NOT YET.
  10. //\\//\\//\\ ** Design Note: ** //\\//\\//\\
  11. // Custom Colors not needed, just use the
  12. // colors in the Font Dialog for now and
  13. // begin to workout RTF file Print details
  14. // for the overall Class Library. (.dll)
  15. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  16. // v5.0.5.99 19-Jan-2019 Initial Integration
  17. // v5.0.6.00 03-Feb-2019 Simplified Perfect.
  18. // v5.0.6.01 26-Feb-2019 Really Getin tharZ.
  19. // v5.0.6.03 14-Mar-2019 ReSetPages Call.
  20. // v5.1.7.10 25-Apr Instance-N Font stuff.
  21. //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  22.  
  23. using System;
  24. using System.Drawing;
  25. using System.Threading;
  26. using System.Windows.Forms;
  27.  
  28. // Class Aliases
  29. using MCC = MyCustomControls.CustomControl;
  30. using MCT = MyCustomLibrary.MyToolbox;
  31. using MPC = MyCustomPrintLibrary.MyPrintClass;
  32.  
  33. // Properties Aliases
  34. using MPR = MyCustomPrintLibrary.Properties.Resources;
  35. using MPS = MyCustomPrintLibrary.Properties.Settings;
  36.  
  37. namespace MyCustomPrintLibrary
  38. {
  39.   public static class MyFontClass // ==> MFC
  40.   {
  41. #region PrintFontDialog & Methods, Used by PB.
  42.  
  43.     /* MyCustomControls Dox
  44.      ****************************
  45.      * O1 = MyOpenDialog;
  46.      * R1 = MyRichTextBox;
  47.      * P1 = MyPrintDialog;
  48.      * P2 = MyPreviewControl;
  49.      * P3 = MyPreviewDialog;
  50.      * D1 = MyPrintDoc;
  51.      * P4 = MyPageSetup;
  52.      * M1 = MyPreviewMenuStrip;
  53.      * M2 = MyColorDialog;
  54.      * F0 = MyFontDialog;
  55.      * S1 = MySaveDialog;
  56.      ****************************
  57.     */
  58.  
  59.     private static readonly Mutex Pf =
  60.       new Mutex(false, "PrintFontMutex");
  61.  
  62.     public static FontDialog MyFontDialog
  63.     {
  64.       get { return  Fonts; }
  65.       private set { Fonts = value; }
  66.     }
  67.     // ^|
  68.     // || All Inclusive & Eloquently simple.
  69.     // |v
  70.     private static FontDialog Fonts
  71.     {
  72.       get { return GetFontDialog(); }
  73.       set { SetFontDialog(value);   }
  74.     }
  75.     // | |
  76.     // | |
  77.     // v v
  78.     private static
  79.       FontDialog GetFontDialog()
  80.     {
  81.       using(MPC.LockOut)
  82.       {
  83.         using(Pf)
  84.         {
  85.           //Pf.WaitOne();
  86.           FontDialog d;
  87.           using (var f = new MCC())
  88.           { d = f.F0; }
  89.           d.Font = new Font(
  90.             MPS.Default.FntNm,
  91.             MPS.Default.FntSz,
  92.             MPS.Default.FntSt,
  93.             MPS.Default.FntGu,
  94.             MPS.Default.FntCs,
  95.             MPS.Default.FntVr);
  96.           d.Color = MPS.Default.PbClr;
  97.           d.HelpRequest += MCT.FontDialogHelp;
  98.           //Pf.ReleaseMutex();
  99.           return d;
  100.         }
  101.       }
  102.     }
  103.     // ^ ^
  104.     // | |
  105.     // | |
  106.     private static void
  107.       SetFontDialog(FontDialog d)
  108.     {
  109.       using(MPC.LockOut)
  110.       {
  111.         using(Pf)
  112.         {
  113.           //Pf.WaitOne();
  114.           MPS.Default.FntNm = d.Font.Name;
  115.           MPS.Default.FntSz = d.Font.Size;
  116.           MPS.Default.FntSt = d.Font.Style;
  117.           MPS.Default.FntGu = d.Font.Unit;
  118.           MPS.Default.FntCs = d.Font.GdiCharSet;
  119.           MPS.Default.FntVr =
  120.             d.Font.GdiVerticalFont;
  121.           MPS.Default.PbClr = d.Color;
  122.           MPS.Default.Save();
  123.           //Pf.ReleaseMutex();
  124.         }
  125.       }
  126.     }
  127.  
  128.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  129.     // Default Font & Color already Set,
  130.     // So never null or void from the Start.
  131.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  132.  
  133.     public static void SelectPrintFont()
  134.     {
  135.       using (new Mutex(false,
  136.         "MyPrintFontDialogMutex"))
  137.       {
  138.         // Called from PB Thread
  139.         // and may be 1st or 2nd instance.
  140.         var d = MyFontDialog;
  141.         using (d)
  142.         { if (!d.ShowDialog().Equals(
  143.             DialogResult.OK)) return;
  144.           d.HelpRequest -=
  145.             MCT.FontDialogHelp; }
  146.         MyFontDialog = d;
  147.         MPC.ReSetPages();
  148.       }
  149.     }
  150. #endregion (PB) PrintFontDialog Method Group
  151.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  152.  
  153.  
  154. #region Smesa (Me) Font Property Methods
  155.  
  156.     public static Color MePrintColor//(Fore)
  157.     {
  158.       get { return Mc1;  }
  159.       set { Mc1 = value; }
  160.     }
  161.  
  162.     private static Color Mc1
  163.     {
  164.       get { using(MPC.LockOut) {
  165.         return MPS.Default.MeClr; } }
  166.       set { using(MPC.LockOut) {
  167.         MPS.Default.MeClr = value;
  168.         MPS.Default.Save(); } }
  169.     }
  170.  
  171.     public static Font MeFont
  172.     {
  173.       get { return Font1;  }
  174.       set { Font1 = value; }
  175.     }
  176.  
  177.     private static Font Font1
  178.     {
  179.       get { return GetMeFont(); }
  180.       set { SetMeFont(value);   }
  181.     }
  182.  
  183.     private static readonly Mutex Me = new
  184.       Mutex(false, "MeFontMutex04252019");
  185.  
  186.     private static Font GetMeFont()
  187.     {
  188.       using (MPC.LockOut)
  189.       {
  190.         using (Me)
  191.         {
  192.           //Me.WaitOne();
  193.           var t = Control.DefaultFont;
  194.           try { using (var f = new Font(
  195.             MPS.Default.FtNm, MPS.Default.FtSz,
  196.             MPS.Default.FtSt, MPS.Default.FtGu,
  197.             MPS.Default.FtCs, MPS.Default.FtVr))
  198.           { t = f; } }
  199.           catch (ArgumentException)
  200.           { try { using (var d = new MCC())
  201.             { t = d.F0.Font; } }
  202.               catch(ArgumentException) { } }
  203.           //Me.ReleaseMutex();
  204.           return t;
  205.         }
  206.       }
  207.     }
  208.  
  209.     private static void SetMeFont(Font f)
  210.     {
  211.       using (MPC.LockOut)
  212.       {
  213.         using (Me)
  214.         {
  215.           //Me.WaitOne();
  216.           MPS.Default.FtNm = f.Name;
  217.           MPS.Default.FtSz = f.Size;
  218.           MPS.Default.FtSt = f.Style;
  219.           MPS.Default.FtGu = f.Unit;
  220.           MPS.Default.FtCs = f.GdiCharSet;
  221.           MPS.Default.FtVr = f.GdiVerticalFont;
  222.           MPS.Default.Save();
  223.           //Me.ReleaseMutex();
  224.         }
  225.       }
  226.     }
  227. #endregion Smesa Font Property Method Group
  228.     //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
  229.  
  230.  
  231.   }
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement