Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region Top Part
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // MyDialogs.cs AppStatic Assembly
- // Tools and Dialogs among others.
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- // Brought over from Smesav Project
- // AppStatic.Tools & .Dialogs are
- // Independent like MyCustomControl
- // v2.3.7.27 15-Dec-2018 -JpE-
- // v4.5.7.57 09-Jun-18
- // v4.5.7.58 03-Jul-18 ReOrganized.
- // v4.7.0.71 19-Sep About Colors.
- // v5.0.6.01 06-Mar-2019 Overloads
- // v5.2.7.12 02-May-2019 Search Pro
- // v5.2.7.14 12-May-2019 Perfectionist
- // v5.2.8.16 18-May Ready for After Dialog.
- // v5.2.8.17 24-May PropertyChangedEvents.
- // v5.2.8.18 26-May-2019 Search Pro Design.
- // v5.3.0.22 22-Jun Search Pro Development.
- // v5.3.1.23 01-Jul light Search touches.
- // v5.3.1.24 03-Jul Integrating Search mods.
- // v5.3.1.25 10-Jul Final Here in MCD!
- // v5.3.3.28 21-July SmesaSearch.cs rockin'
- // v5.4.5.32 07-Aug-2019 Search & Replace.
- // v5.4.6.36 04-Sep Search string, BuggFixxd
- // & further refined Search Launch. ++ 9-07
- // v5.4.6.37 10-Sep-2019 Shakedown 4 Search.
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- using System;
- using System.Collections.ObjectModel;
- using System.IO;
- using System.Drawing;
- using System.Threading;
- using System.Windows.Forms;
- using System.Collections.Generic;
- // My Custom Controls Class
- using MyCustomControls;
- // & My Custom Library alias
- using MCT = MyCustomLibrary.MyToolbox;
- // & Custom Property Aliases
- using MCS = MyCustomLibrary
- .Properties.Settings;
- using MCR = MyCustomLibrary
- .Properties.Resources;
- #endregion Pop Tart
- namespace MyCustomLibrary
- {
- /** MyCustomControls Legend: **
- *******************************
- * O1 = MyOpenDialog;
- * R1 = MyRichTextBox;
- * P1 = MyPrintDialog;
- * P2 = MyPreviewControl;
- * P3 = MyPreviewDialog;
- * D1 = MyPrintDoc;
- * P4 = MyPageSetup;
- * M1 = MyPreviewMenuStrip;
- * M2 = MyColorDialog;
- * F0 = MyFontDialog;
- * S1 = MySaveDialog;
- *******************************
- */
- public static class Dialogs
- {
- #region Everything Else
- /// <summary> ReUses About Form
- /// for each Smesa App. Args for
- /// each are passed in; making this
- /// Public Method very ReUsable. -JpE-
- /// v4.5.7.58 03-July-2018
- /// </summary>
- /// <param name="colors"></param>
- /// <param name="args"></param>
- public static void AboutApp(
- IList<Color> colors, IList<string> args)
- {
- if (args == null) return;
- var l = args.Count;
- using (var a = new AboutBox(colors))
- {
- if (l>0) a.Title141(args[0]);
- if (l>1) a.Product1(args[2]);
- if (l>3) a.Rights12(args[3]);
- if (l>4) a.Company4(args[4]);
- if (l>5) a.Describe(args[5]);
- // args for each passed in.
- a.Size = MCS.Default.AboutSize;
- a.Location = MCS.Default.AboutLocation;
- a.ShowDialog();
- MCS.Default.AboutSize = a.Size;
- MCS.Default.AboutLocation = a.Location;
- }
- MCS.Default.Save();
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- //public static bool // cleanup unused when finished.
- // YesNoDialog()
- //{ return YesNoDialog(MCR.YND_Txt); }
- //// Defaults to Text, Title, & NO
- public static bool
- YesNoDialog(string text)
- {
- return YesNoDialog(
- text, MCR.YND_Ttl);
- }
- public static bool YesNoDialog(
- string text, string title)
- {
- const int no = 2;
- return YesNoDialog(
- text, title, no);
- }
- /// <summary> Public Access Multi-Purpose
- /// ReUsable OverLoaded Method-Group
- /// Designed For Extreme ReUse Potential.
- /// Defaults to SMR.AYS_Txt,
- /// title is SMR.AYS_Ttl
- /// The NO (2) button as DEFAULT. NO
- /// v1.0.3.26a 04-Dec-2017
- /// v2.2.5.26y 27-Dec-2017
- /// </summary>
- /// <param name="text"></param>
- /// <param name="title"></param>
- /// <param name="def"></param>
- /// <returns></returns>
- public static bool
- YesNoDialog(string text,
- string title, int def)
- {
- if (MyToolbox.Skip) return true;
- if (def < 1 || def > 2) def = 2;
- if (string.IsNullOrEmpty(text))
- text = MCR.YND_Txt;
- if (string.IsNullOrEmpty(title))
- title = MCR.YND_Ttl;
- var db = MessageBoxDefaultButton.Button2;
- const MessageBoxDefaultButton
- yes = MessageBoxDefaultButton.Button1;
- if (def < 2) db = yes;
- return
- DialogResult.Yes.Equals(
- MessageBox.Show(text, title,
- MessageBoxButtons.YesNo,
- MessageBoxIcon.Question, db));
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- //public static DialogResult YesNoCancel()
- //{ return YesNoCancel(MCR.YND_Txt); }
- ///* Default to Text, Title, & NO */
- //public static DialogResult
- // YesNoCancel(string text)
- //{ return YesNoCancel(text, MCR.YND_Ttl); }
- //// Default to Title & NO
- public static DialogResult
- YesNoCancel(string text, string title)
- {
- const int cancel = 3;
- return YesNoCancel(text, title, cancel);
- }
- // Default to Cancel ^
- /// <summary> Defaults to ASR.AYS_Txt,
- /// ASR.AYS_Ttl and Cancel.
- /// Returns the Actual Dialog Result.
- /// </summary>
- /// <param name="text"> </param>
- /// <param name="title"> </param>
- /// <param name="def"> </param>
- /// <returns> </returns>
- static DialogResult YesNoCancel(
- string text, string title, int def)
- {
- if (MyToolbox.Skip)
- return DialogResult.Yes;
- if (def < 1 || def > 3) def = 3;
- if (string.IsNullOrEmpty(text))
- text = MCR.YND_Txt;
- if (string.IsNullOrEmpty(title))
- title = MCR.YND_Ttl;
- var
- d = MessageBoxDefaultButton.Button3;
- if (def == 2)
- d = MessageBoxDefaultButton.Button2;
- if (def == 1)
- d = MessageBoxDefaultButton.Button1;
- return
- MessageBox.Show(text, title,
- MessageBoxButtons.YesNoCancel,
- MessageBoxIcon.Information, d);
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- public static int GetSavePreference()
- {
- const string t = "";
- return GetSavePreference(t);
- }
- static int
- GetSavePreference(string text)
- {
- const string t = "";
- return GetSavePreference(text, t);
- }
- public static int
- GetSavePreference(
- string text, string title)
- {
- const bool no = false;
- return GetSavePreference(
- text, title, no);
- }
- static int
- GetSavePreference(
- string text, string title, bool hide)
- {
- const bool no = false;
- return GetSavePreference(
- text, title, hide, no);
- }
- /// <summary> Ask User to Save @ 500 chars.
- /// Their response becomes their default
- /// if CheckBox.Checked, is 1 time otherwise
- /// NOTE: tab = Tab our User has Open, the
- /// Active RTB in the FileName Collection.
- /// v1.0.2.25j Modified for Multi-Use.
- /// </summary>
- /// <param name="text"> </param>
- /// <param name="title"> </param>
- /// <param name="hide"> </param>
- /// <param name="check"> </param>
- public static int GetSavePreference(
- string text, string title,
- bool hide, bool check)
- {
- int status;
- if (hide) check = false;
- using (var y =
- new YesNoAlwaysForm2(text, title))
- {
- y.Check = check;
- y.HideAlways = hide;
- y.Local = MCS.Default.YnaLoca;
- y.ShowDialog();
- MCS.Default.YnaLoca = y.Local;
- status = y.Status; // Get Result.
- }
- MCS.Default.Save();
- return status;
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- public static int NewTabPrompt()
- {
- int pref;// Awesome and Simple!
- using (var t = new NewTabForm())
- {
- t.ShowDialog();
- pref = t.Preference;
- }
- return pref;
- }
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- /// <summary> Gets existing FileName(s) w/
- /// Users Input ReDesigned & Moved to MCD
- /// v3.1.3.43 23-Mar-2018
- /// </summary>
- /// <param name="fileNames"></param>
- /// <param name="multiple"></param>
- /// <param name="ext"></param>
- /// <param name="filter"></param>
- /// <param name="dir"></param>
- /// <returns></returns>
- public static string[] FileNameGetter(
- string[] fileNames, bool multiple,
- string ext, string filter, string dir)
- {
- if (fileNames == null
- || fileNames.Length < 1)
- return fileNames;
- OpenFileDialog ofd;
- using (var od = new CustomControl())
- { ofd = od.O1; }
- using (var o = ofd)
- {
- o.Multiselect = multiple;
- o.FileName = fileNames[0];
- o.DefaultExt = ext;
- o.Filter = filter;
- o.FilterIndex = 4;
- o.InitialDirectory = dir;
- if (!o.ShowDialog().Equals(
- DialogResult.OK))
- return fileNames;
- if ( o.Multiselect
- && o.FileNames.Length > 0
- && !string
- .IsNullOrEmpty(o.FileNames[0])
- && File.Exists(o.FileNames[0]))
- fileNames = o.FileNames;
- else
- {
- if (!o.Multiselect && !string
- .IsNullOrEmpty(o.FileName)
- && File.Exists(o.FileName))
- fileNames[0] = o.FileName;
- }
- }
- return fileNames;
- }
- #endregion Everything Else
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- #region Static Search Members
- static string
- GetSearchDefault
- { get { return Criteria; } }
- static string Criteria
- { get { return MCS.Default
- .SearchBoxCollection[0]; } }
- internal static
- Collection<string> WholeList
- { get; private set; }
- internal static
- Collection<string> Selected
- { get; set; }
- // Currently Editing FileName.
- internal static string Current
- { get; private set; }
- internal static
- Collection<string> OpenFiles
- { get; private set; }
- public static object[] GetArgs(
- string file, byte task)
- {
- if (string.IsNullOrEmpty(file))
- throw new
- ArgumentException(MCR.Err9);
- var mn1 = Path
- .GetFileNameWithoutExtension(file);
- var arr = new Collection<byte>{task};
- // if not coll ^ bytes reset at usage.
- var obj = new object[]
- { file, 0, 0, arr, true, mn1, true };
- return obj;
- }
- #region args_Doc
- // mmf = Memory Mapped File(s) Arguments
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- // args[0] = Full Path to mmf.
- // args[1] = Size of file in bytes,
- // args[2] = Start @ Byte (offset)
- // args[3] = What to write? (OR Shred? T/F)
- // args[4] = true; Read?
- // args[5] = this mapping's name.
- // args[6] = true; Delete after Read?
- // args[7] = View Length from Offset.
- // (if Given) Not Required, either way.8
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- #endregion
- /// <summary> Entry Point 4 Search Class
- /// NOTE: few.Count == 0 is Okay.
- /// </summary>
- /// <param name="find"></param>
- /// <param name="all"></param>
- /// <param name="few"></param>
- public static void Search(
- string find,
- Collection<string> all,
- Collection<string> few)
- {
- if ( few == null
- || all == null
- || all.Count < 1
- || SearchIsOpen()) return;
- if (few.Count.Equals(1)
- && Application.ExecutablePath
- .Contains(MCR.MyApp))
- ItsMeCalling(all, few); // <-===<<
- else
- {
- OpenFiles = new
- Collection<string>();
- WholeList = all;
- Selected = few;
- }
- if (string.IsNullOrEmpty(find)
- || find.Equals(MCR.Search1))
- find = GetSearchDefault;
- var thd = new Thread(Search2)
- { Name = "Search2" };
- thd.Start(find);
- }
- // REM: New Worker-Thread from here-on!
- static void Search2(object obj)
- {
- SearchOpenToggle();
- using (var sf = new SearchForm())
- {
- sf.Search4(obj as String);
- sf.ShowDialog();
- }
- Current = null;
- Selected = WholeList = null;
- SearchOpenToggle();
- }
- static void SearchOpenToggle()
- {
- var f = SearchOpenName();
- if ( File.Exists(f)) File.Delete(f);
- else File.WriteAllText(f,
- MCR.SearchOpenTxt + // Arbitrary atm
- Application.ExecutablePath);
- }
- static bool SearchIsOpen()
- {
- if (!File.Exists(
- SearchOpenName())) return false;
- if (!MCT.Skip) MessageBox
- .Show(MCR.SearchOpenTxt);
- return true;
- }
- static string SearchOpenName()
- {
- return
- Application.StartupPath +
- MCR.Search_Running;
- }
- // REM: it's ME calling so
- // Editor file is Current.
- // Makes Open = Selection.
- // Goes and gets Favorites.sme
- // data and sets as WholeList.
- static void ItsMeCalling(
- Collection<string> all,
- IList<string> few)
- {
- var file = MCT.GetRoot + MCR.Favs;
- var fav = MCT.GetList(file);
- if ( string.IsNullOrEmpty(file)
- || !File.Exists(file)
- || all.Equals(null)
- || all.Count < 1
- || few.Equals(null)
- || few.Count < 1
- || fav.Equals(null)
- || fav.Count < 1) return;
- // Swap around & ready for SearchForm.
- Current = few[0];// Editing file.
- OpenFiles = Selected = all;
- WholeList = fav; // <===<< from disk.
- }
- public static bool IsFile(string text)
- {
- if (string.IsNullOrEmpty(text)
- || text.Length < 1) throw new
- ArgumentException(
- "Bad arg in IsFile");
- return
- text.Contains("\\")
- && text.Contains(":")
- && File.Exists(text);
- }
- #endregion Search Members
- //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement