Changeset 307


Ignore:
Timestamp:
3/29/2008 3:54:01 AM (6 years ago)
Author:
lowjoel
Message:

Added the UI and the API for language plugins.

Location:
branches/eraser6
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Eraser/Program.cs

    r303 r307  
    9595            PlausibleDeniability = 
    9696                (int)key.GetValue("PlausibleDeniability", (object)1) != 0; 
     97            UILanguage = new Guid((string) 
     98                key.GetValue("UILanguage", Guid.Empty.ToString())); 
    9799 
    98100            //Load the plugin settings. 
     
    131133            key.SetValue("PlausibleDeniability", PlausibleDeniability, 
    132134                RegistryValueKind.DWord); 
     135            key.SetValue("UILanguage", UILanguage); 
    133136 
    134137            using (MemoryStream stream = new MemoryStream()) 
  • branches/eraser6/Eraser/SettingsPanel.Designer.cs

    r303 r307  
    3030        { 
    3131            this.components = new System.ComponentModel.Container(); 
    32             System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Erasure method providers", System.Windows.Forms.HorizontalAlignment.Left); 
    33             System.Windows.Forms.ListViewGroup listViewGroup5 = new System.Windows.Forms.ListViewGroup("Random number generators", System.Windows.Forms.HorizontalAlignment.Left); 
    34             System.Windows.Forms.ListViewGroup listViewGroup6 = new System.Windows.Forms.ListViewGroup("History trace cleaners", System.Windows.Forms.HorizontalAlignment.Left); 
    35             this.shell = new Eraser.LightGroup(); 
    36             this.shellContextMenu = new System.Windows.Forms.CheckBox(); 
     32            this.ui = new Eraser.LightGroup(); 
     33            this.uiContextMenu = new System.Windows.Forms.CheckBox(); 
    3734            this.lockedAllow = new System.Windows.Forms.CheckBox(); 
    3835            this.lockedConfirm = new System.Windows.Forms.CheckBox(); 
     
    5956            this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); 
    6057            this.plausibleDeniability = new System.Windows.Forms.CheckBox(); 
     58            this.uiLanguageLbl = new System.Windows.Forms.Label(); 
     59            this.uiLanguage = new System.Windows.Forms.ComboBox(); 
    6160            ((System.ComponentModel.ISupportInitialize)(this.titleIcon)).BeginInit(); 
    6261            this.content.SuspendLayout(); 
     
    7675            // content 
    7776            //  
     77            this.content.Controls.Add(this.uiLanguage); 
     78            this.content.Controls.Add(this.uiLanguageLbl); 
    7879            this.content.Controls.Add(this.plausibleDeniability); 
    7980            this.content.Controls.Add(this.erasePRNG); 
     
    9293            this.content.Controls.Add(this.lockedConfirm); 
    9394            this.content.Controls.Add(this.lockedAllow); 
    94             this.content.Controls.Add(this.shellContextMenu); 
    95             this.content.Controls.Add(this.shell); 
    96             this.content.Size = new System.Drawing.Size(712, 602); 
    97             //  
    98             // shell 
    99             //  
    100             this.shell.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     95            this.content.Controls.Add(this.uiContextMenu); 
     96            this.content.Controls.Add(this.ui); 
     97            this.content.Size = new System.Drawing.Size(712, 630); 
     98            //  
     99            // ui 
     100            //  
     101            this.ui.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
    101102                        | System.Windows.Forms.AnchorStyles.Right))); 
    102             this.shell.AutoSize = true; 
    103             this.shell.Label = "Shell integration"; 
    104             this.shell.Location = new System.Drawing.Point(0, -6); 
    105             this.shell.Name = "shell"; 
    106             this.shell.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); 
    107             this.shell.Size = new System.Drawing.Size(712, 32); 
    108             this.shell.TabIndex = 1; 
    109             //  
    110             // shellContextMenu 
    111             //  
    112             this.shellContextMenu.AutoSize = true; 
    113             this.shellContextMenu.Checked = true; 
    114             this.shellContextMenu.CheckState = System.Windows.Forms.CheckState.Checked; 
    115             this.shellContextMenu.Location = new System.Drawing.Point(20, 32); 
    116             this.shellContextMenu.Name = "shellContextMenu"; 
    117             this.shellContextMenu.Size = new System.Drawing.Size(209, 17); 
    118             this.shellContextMenu.TabIndex = 2; 
    119             this.shellContextMenu.Text = "Integrate Eraser into Windows Explorer"; 
    120             this.shellContextMenu.UseVisualStyleBackColor = true; 
     103            this.ui.AutoSize = true; 
     104            this.ui.Label = "Shell integration"; 
     105            this.ui.Location = new System.Drawing.Point(0, -6); 
     106            this.ui.Name = "ui"; 
     107            this.ui.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); 
     108            this.ui.Size = new System.Drawing.Size(712, 32); 
     109            this.ui.TabIndex = 1; 
     110            //  
     111            // uiContextMenu 
     112            //  
     113            this.uiContextMenu.AutoSize = true; 
     114            this.uiContextMenu.Checked = true; 
     115            this.uiContextMenu.CheckState = System.Windows.Forms.CheckState.Checked; 
     116            this.uiContextMenu.Location = new System.Drawing.Point(20, 53); 
     117            this.uiContextMenu.Name = "uiContextMenu"; 
     118            this.uiContextMenu.Size = new System.Drawing.Size(209, 17); 
     119            this.uiContextMenu.TabIndex = 4; 
     120            this.uiContextMenu.Text = "Integrate Eraser into Windows Explorer"; 
     121            this.uiContextMenu.UseVisualStyleBackColor = true; 
    121122            //  
    122123            // lockedAllow 
     
    125126            this.lockedAllow.Checked = true; 
    126127            this.lockedAllow.CheckState = System.Windows.Forms.CheckState.Checked; 
    127             this.lockedAllow.Location = new System.Drawing.Point(20, 166); 
     128            this.lockedAllow.Location = new System.Drawing.Point(20, 193); 
    128129            this.lockedAllow.Name = "lockedAllow"; 
    129130            this.lockedAllow.Size = new System.Drawing.Size(251, 17); 
    130             this.lockedAllow.TabIndex = 10; 
     131            this.lockedAllow.TabIndex = 12; 
    131132            this.lockedAllow.Text = "Allow locked files to be erased on system restart"; 
    132133            this.lockedAllow.UseVisualStyleBackColor = true; 
     
    136137            //  
    137138            this.lockedConfirm.AutoSize = true; 
    138             this.lockedConfirm.Location = new System.Drawing.Point(36, 189); 
     139            this.lockedConfirm.Location = new System.Drawing.Point(36, 216); 
    139140            this.lockedConfirm.Name = "lockedConfirm"; 
    140141            this.lockedConfirm.Size = new System.Drawing.Size(182, 17); 
    141             this.lockedConfirm.TabIndex = 11; 
     142            this.lockedConfirm.TabIndex = 13; 
    142143            this.lockedConfirm.Text = "Confirm with user before doing so"; 
    143144            this.lockedConfirm.UseVisualStyleBackColor = true; 
     
    149150            this.erase.AutoSize = true; 
    150151            this.erase.Label = "Erase settings"; 
    151             this.erase.Location = new System.Drawing.Point(0, 49); 
     152            this.erase.Location = new System.Drawing.Point(0, 76); 
    152153            this.erase.Name = "erase"; 
    153154            this.erase.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); 
    154155            this.erase.Size = new System.Drawing.Size(712, 32); 
    155             this.erase.TabIndex = 3; 
     156            this.erase.TabIndex = 5; 
    156157            //  
    157158            // eraseFilesMethodLbl 
    158159            //  
    159160            this.eraseFilesMethodLbl.AutoSize = true; 
    160             this.eraseFilesMethodLbl.Location = new System.Drawing.Point(17, 88); 
     161            this.eraseFilesMethodLbl.Location = new System.Drawing.Point(17, 115); 
    161162            this.eraseFilesMethodLbl.Name = "eraseFilesMethodLbl"; 
    162163            this.eraseFilesMethodLbl.Size = new System.Drawing.Size(136, 13); 
    163             this.eraseFilesMethodLbl.TabIndex = 4; 
     164            this.eraseFilesMethodLbl.TabIndex = 6; 
    164165            this.eraseFilesMethodLbl.Text = "Default file erasure method:"; 
    165166            //  
     
    167168            //  
    168169            this.eraseUnusedMethodLbl.AutoSize = true; 
    169             this.eraseUnusedMethodLbl.Location = new System.Drawing.Point(17, 114); 
     170            this.eraseUnusedMethodLbl.Location = new System.Drawing.Point(17, 141); 
    170171            this.eraseUnusedMethodLbl.Name = "eraseUnusedMethodLbl"; 
    171172            this.eraseUnusedMethodLbl.Size = new System.Drawing.Size(190, 13); 
    172             this.eraseUnusedMethodLbl.TabIndex = 6; 
     173            this.eraseUnusedMethodLbl.TabIndex = 8; 
    173174            this.eraseUnusedMethodLbl.Text = "Default unused space erasure method:"; 
    174175            //  
     
    176177            //  
    177178            this.eraseFilesMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
    178             this.eraseFilesMethod.Location = new System.Drawing.Point(267, 84); 
     179            this.eraseFilesMethod.Location = new System.Drawing.Point(267, 111); 
    179180            this.eraseFilesMethod.Name = "eraseFilesMethod"; 
    180181            this.eraseFilesMethod.Size = new System.Drawing.Size(290, 21); 
    181             this.eraseFilesMethod.TabIndex = 5; 
     182            this.eraseFilesMethod.TabIndex = 7; 
    182183            //  
    183184            // eraseUnusedMethod 
    184185            //  
    185186            this.eraseUnusedMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
    186             this.eraseUnusedMethod.Location = new System.Drawing.Point(267, 111); 
     187            this.eraseUnusedMethod.Location = new System.Drawing.Point(267, 138); 
    187188            this.eraseUnusedMethod.Name = "eraseUnusedMethod"; 
    188189            this.eraseUnusedMethod.Size = new System.Drawing.Size(290, 21); 
    189             this.eraseUnusedMethod.TabIndex = 7; 
     190            this.eraseUnusedMethod.TabIndex = 9; 
    190191            //  
    191192            // plugins 
     
    195196            this.plugins.AutoSize = true; 
    196197            this.plugins.Label = "Plugins"; 
    197             this.plugins.Location = new System.Drawing.Point(0, 330); 
     198            this.plugins.Location = new System.Drawing.Point(0, 357); 
    198199            this.plugins.Name = "plugins"; 
    199200            this.plugins.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); 
    200201            this.plugins.Size = new System.Drawing.Size(712, 32); 
    201             this.plugins.TabIndex = 16; 
     202            this.plugins.TabIndex = 19; 
    202203            //  
    203204            // pluginsManager 
     
    212213            this.pluginsManager.ContextMenuStrip = this.pluginsMenu; 
    213214            this.pluginsManager.FullRowSelect = true; 
    214             listViewGroup4.Header = "Erasure method providers"; 
    215             listViewGroup4.Name = "pluginsManagerGrpMethod"; 
    216             listViewGroup5.Header = "Random number generators"; 
    217             listViewGroup5.Name = "pluginsManagerGrpPrng"; 
    218             listViewGroup6.Header = "History trace cleaners"; 
    219             listViewGroup6.Name = "pluginsManagerGrpHistory"; 
    220             this.pluginsManager.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { 
    221             listViewGroup4, 
    222             listViewGroup5, 
    223             listViewGroup6}); 
    224             this.pluginsManager.Location = new System.Drawing.Point(20, 368); 
     215            this.pluginsManager.Location = new System.Drawing.Point(20, 395); 
    225216            this.pluginsManager.Name = "pluginsManager"; 
    226217            this.pluginsManager.Size = new System.Drawing.Size(689, 234); 
    227             this.pluginsManager.TabIndex = 17; 
     218            this.pluginsManager.TabIndex = 20; 
    228219            this.pluginsManager.UseCompatibleStateImageBehavior = false; 
    229220            this.pluginsManager.View = System.Windows.Forms.View.Details; 
     
    260251            //  
    261252            this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; 
    262             this.settingsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 
     253            this.settingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); 
    263254            this.settingsToolStripMenuItem.Text = "Settings..."; 
    264255            this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); 
     
    270261            this.scheduler.AutoSize = true; 
    271262            this.scheduler.Label = "Scheduler settings"; 
    272             this.scheduler.Location = new System.Drawing.Point(0, 236); 
     263            this.scheduler.Location = new System.Drawing.Point(0, 263); 
    273264            this.scheduler.Name = "scheduler"; 
    274265            this.scheduler.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); 
    275266            this.scheduler.Size = new System.Drawing.Size(712, 32); 
    276             this.scheduler.TabIndex = 12; 
     267            this.scheduler.TabIndex = 15; 
    277268            //  
    278269            // schedulerMissed 
    279270            //  
    280271            this.schedulerMissed.AutoSize = true; 
    281             this.schedulerMissed.Location = new System.Drawing.Point(17, 271); 
     272            this.schedulerMissed.Location = new System.Drawing.Point(17, 298); 
    282273            this.schedulerMissed.Name = "schedulerMissed"; 
    283274            this.schedulerMissed.Size = new System.Drawing.Size(242, 13); 
    284             this.schedulerMissed.TabIndex = 13; 
     275            this.schedulerMissed.TabIndex = 16; 
    285276            this.schedulerMissed.Text = "When a recurring task has missed its starting time,"; 
    286277            //  
     
    289280            this.schedulerMissedImmediate.AutoSize = true; 
    290281            this.schedulerMissedImmediate.Checked = true; 
    291             this.schedulerMissedImmediate.Location = new System.Drawing.Point(36, 287); 
     282            this.schedulerMissedImmediate.Location = new System.Drawing.Point(36, 314); 
    292283            this.schedulerMissedImmediate.Name = "schedulerMissedImmediate"; 
    293284            this.schedulerMissedImmediate.Size = new System.Drawing.Size(217, 17); 
    294             this.schedulerMissedImmediate.TabIndex = 14; 
     285            this.schedulerMissedImmediate.TabIndex = 17; 
    295286            this.schedulerMissedImmediate.TabStop = true; 
    296287            this.schedulerMissedImmediate.Text = "execute the task when Eraser next starts"; 
     
    300291            //  
    301292            this.schedulerMissedIgnore.AutoSize = true; 
    302             this.schedulerMissedIgnore.Location = new System.Drawing.Point(36, 307); 
     293            this.schedulerMissedIgnore.Location = new System.Drawing.Point(36, 334); 
    303294            this.schedulerMissedIgnore.Name = "schedulerMissedIgnore"; 
    304295            this.schedulerMissedIgnore.Size = new System.Drawing.Size(339, 17); 
    305             this.schedulerMissedIgnore.TabIndex = 15; 
     296            this.schedulerMissedIgnore.TabIndex = 18; 
    306297            this.schedulerMissedIgnore.TabStop = true; 
    307298            this.schedulerMissedIgnore.Text = "ignore the missed schedule and run only at the next appointed time"; 
     
    322313            //  
    323314            this.erasePRNGLbl.AutoSize = true; 
    324             this.erasePRNGLbl.Location = new System.Drawing.Point(17, 142); 
     315            this.erasePRNGLbl.Location = new System.Drawing.Point(17, 169); 
    325316            this.erasePRNGLbl.Name = "erasePRNGLbl"; 
    326317            this.erasePRNGLbl.Size = new System.Drawing.Size(131, 13); 
    327             this.erasePRNGLbl.TabIndex = 8; 
     318            this.erasePRNGLbl.TabIndex = 10; 
    328319            this.erasePRNGLbl.Text = "Randomness data source:"; 
    329320            //  
     
    332323            this.erasePRNG.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
    333324            this.erasePRNG.FormattingEnabled = true; 
    334             this.erasePRNG.Location = new System.Drawing.Point(267, 138); 
     325            this.erasePRNG.Location = new System.Drawing.Point(267, 165); 
    335326            this.erasePRNG.Name = "erasePRNG"; 
    336327            this.erasePRNG.Size = new System.Drawing.Size(290, 21); 
    337             this.erasePRNG.TabIndex = 9; 
     328            this.erasePRNG.TabIndex = 11; 
    338329            //  
    339330            // errorProvider 
     
    346337            this.plausibleDeniability.Checked = true; 
    347338            this.plausibleDeniability.CheckState = System.Windows.Forms.CheckState.Checked; 
    348             this.plausibleDeniability.Location = new System.Drawing.Point(20, 213); 
     339            this.plausibleDeniability.Location = new System.Drawing.Point(20, 240); 
    349340            this.plausibleDeniability.Name = "plausibleDeniability"; 
    350341            this.plausibleDeniability.Size = new System.Drawing.Size(361, 17); 
    351             this.plausibleDeniability.TabIndex = 18; 
     342            this.plausibleDeniability.TabIndex = 14; 
    352343            this.plausibleDeniability.Text = "Copy other files from the same volume over the deleted file after erasing"; 
    353344            this.plausibleDeniability.UseVisualStyleBackColor = true; 
    354345            //  
     346            // uiLanguageLbl 
     347            //  
     348            this.uiLanguageLbl.AutoSize = true; 
     349            this.uiLanguageLbl.Location = new System.Drawing.Point(17, 29); 
     350            this.uiLanguageLbl.Name = "uiLanguageLbl"; 
     351            this.uiLanguageLbl.Size = new System.Drawing.Size(123, 13); 
     352            this.uiLanguageLbl.TabIndex = 2; 
     353            this.uiLanguageLbl.Text = "User interface language:"; 
     354            //  
     355            // uiLanguage 
     356            //  
     357            this.uiLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
     358            this.uiLanguage.FormattingEnabled = true; 
     359            this.uiLanguage.Location = new System.Drawing.Point(267, 26); 
     360            this.uiLanguage.Name = "uiLanguage"; 
     361            this.uiLanguage.Size = new System.Drawing.Size(290, 21); 
     362            this.uiLanguage.TabIndex = 3; 
     363            //  
    355364            // SettingsPanel 
    356365            //  
    357366            this.Controls.Add(this.saveSettings); 
    358367            this.Name = "SettingsPanel"; 
    359             this.Size = new System.Drawing.Size(752, 674); 
     368            this.Size = new System.Drawing.Size(752, 702); 
    360369            this.Controls.SetChildIndex(this.saveSettings, 0); 
    361370            this.Controls.SetChildIndex(this.titleLbl, 0); 
     
    376385        private System.Windows.Forms.CheckBox lockedConfirm; 
    377386        private System.Windows.Forms.CheckBox lockedAllow; 
    378         private System.Windows.Forms.CheckBox shellContextMenu; 
    379         private LightGroup shell; 
     387        private System.Windows.Forms.CheckBox uiContextMenu; 
     388        private LightGroup ui; 
    380389        private System.Windows.Forms.Label eraseUnusedMethodLbl; 
    381390        private System.Windows.Forms.Label eraseFilesMethodLbl; 
     
    400409        private System.Windows.Forms.ContextMenuStrip pluginsMenu; 
    401410        private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; 
     411        private System.Windows.Forms.ComboBox uiLanguage; 
     412        private System.Windows.Forms.Label uiLanguageLbl; 
    402413    } 
    403414} 
  • branches/eraser6/Eraser/SettingsPanel.cs

    r305 r307  
    4545                OnNewPluginLoaded(i.Current); 
    4646 
     47            //Refresh the list of languages 
     48            Dictionary<Guid, Language> languages = LanguageManager.GetAll(); 
     49            foreach (Language lang in languages.Values) 
     50                uiLanguage.Items.Add(lang); 
     51 
    4752            //Refresh the list of erasure methods 
    4853            Dictionary<Guid, ErasureMethod> methods = ErasureMethodManager.GetAll(); 
     
    6267        private void LoadSettings() 
    6368        { 
     69            foreach (Object lang in uiLanguage.Items) 
     70                if (((Language)lang).GUID == ManagerLibrary.Instance.Settings.UILanguage) 
     71                { 
     72                    uiLanguage.SelectedItem = lang; 
     73                    break; 
     74                } 
     75 
    6476            foreach (Object method in eraseFilesMethod.Items) 
    6577                if (((ErasureMethod)method).GUID == ManagerLibrary.Instance.Settings.DefaultFileErasureMethod) 
     
    96108            //Select an intelligent default if the settings are invalid. 
    97109            string defaults = string.Empty; 
     110            if (uiLanguage.SelectedIndex == -1) 
     111            { 
     112                defaults += "\tUser interface language\n"; 
     113            } 
    98114            if (eraseFilesMethod.SelectedIndex == -1) 
    99115            { 
     
    167183            //Error checks first. 
    168184            errorProvider.Clear(); 
    169             if (eraseFilesMethod.SelectedIndex == -1) 
     185            if (uiLanguage.SelectedIndex == -1) 
     186            { 
     187                errorProvider.SetError(uiLanguage, "An invalid language was selected."); 
     188                return; 
     189            } 
     190            else if (eraseFilesMethod.SelectedIndex == -1) 
    170191            { 
    171192                errorProvider.SetError(eraseFilesMethod, "An invalid file erasure method " + 
     
    186207            } 
    187208 
     209            ManagerLibrary.Instance.Settings.UILanguage = 
     210                ((Language)uiLanguage.SelectedItem).GUID; 
    188211            ManagerLibrary.Instance.Settings.DefaultFileErasureMethod = 
    189212                ((ErasureMethod)eraseFilesMethod.SelectedItem).GUID; 
  • branches/eraser6/Manager/Manager.cd

    r302 r307  
    4141    <TypeIdentifier> 
    4242      <FileName>Manager.cs</FileName> 
    43       <HashCode>AAAAAAAAACAAAAAAAAAAAAAAAAAACAAAwAAAAAAEAAQ=</HashCode> 
     43      <HashCode>AAAAAAAAACAAAAAAAAAAAAAEAAAACAAAwAAAAAAEAAQ=</HashCode> 
    4444    </TypeIdentifier> 
    4545    <Lollipop Position="0.2" Collapsed="true" /> 
    4646  </Class> 
    4747  <Class Name="Eraser.Manager.FatalException"> 
    48     <Position X="11.25" Y="3.5" Width="1.5" /> 
     48    <Position X="11.25" Y="3.75" Width="1.5" /> 
    4949    <TypeIdentifier> 
    5050      <FileName>Manager.cs</FileName> 
     
    168168    <TypeIdentifier> 
    169169      <FileName>Settings.cs</FileName> 
    170       <HashCode>EAAAAAAAIBgAAAAQAAoAAAAAIBAAABAAAAIAACAQIAA=</HashCode> 
     170      <HashCode>EAAAAAgAKBgAAAAQAAoBAAAAIBAAABAAAAIAACAQIQA=</HashCode> 
    171171    </TypeIdentifier> 
    172172  </Class> 
     
    175175    <TypeIdentifier> 
    176176      <FileName>Task.cs</FileName> 
    177       <HashCode>AAAAJAQAAAMAgBYBAABECIQgQEgmAEBAAABAAAAAAiA=</HashCode> 
     177      <HashCode>AAAAJAQAAAEAgAQBAABECIQgQEgmAEBAAABAAAAAAiA=</HashCode> 
    178178    </TypeIdentifier> 
    179179    <Compartments> 
     
    207207        </TypeIdentifier> 
    208208      </Class> 
    209       <Delegate Name="Eraser.Manager.Task.LogEvent" Collapsed="true"> 
    210         <TypeIdentifier> 
    211           <NewMemberFileName>Task.cs</NewMemberFileName> 
    212         </TypeIdentifier> 
    213       </Delegate> 
    214209      <Delegate Name="Eraser.Manager.Task.TaskEventFunction" Collapsed="true"> 
    215210        <TypeIdentifier> 
     
    254249  </Class> 
    255250  <Class Name="Eraser.Manager.Plugin.DefaultHost"> 
    256     <Position X="13.25" Y="8.5" Width="1.5" /> 
     251    <Position X="13.25" Y="8.75" Width="1.5" /> 
    257252    <TypeIdentifier> 
    258253      <FileName>Plugins.cs</FileName> 
     
    260255    </TypeIdentifier> 
    261256  </Class> 
     257  <Class Name="Eraser.Manager.Logger" BaseTypeListCollapsed="true"> 
     258    <Position X="17.25" Y="1.5" Width="1.5" /> 
     259    <TypeIdentifier> 
     260      <FileName>Logger.cs</FileName> 
     261      <HashCode>AgIAAAAAAAEIACAAAAAoAAAgAAAAAAAAACAAAABAAAA=</HashCode> 
     262    </TypeIdentifier> 
     263    <NestedTypes> 
     264      <Delegate Name="Eraser.Manager.Logger.LogEvent" Collapsed="true"> 
     265        <TypeIdentifier> 
     266          <NewMemberFileName>Logger.cs</NewMemberFileName> 
     267        </TypeIdentifier> 
     268      </Delegate> 
     269    </NestedTypes> 
     270    <Lollipop Position="0.2" Collapsed="true" /> 
     271  </Class> 
     272  <Class Name="Eraser.Manager.Language"> 
     273    <Position X="17.75" Y="6.5" Width="1.5" /> 
     274    <TypeIdentifier> 
     275      <FileName>Language.cs</FileName> 
     276      <HashCode>AABAAAAAAAAAAAAEAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode> 
     277    </TypeIdentifier> 
     278  </Class> 
     279  <Class Name="Eraser.Manager.LanguageManager"> 
     280    <Position X="19.5" Y="7.25" Width="1.5" /> 
     281    <TypeIdentifier> 
     282      <FileName>Language.cs</FileName> 
     283      <HashCode>AAAAAAAAAAAAAAAAAAAAAAAABAABAACAAgAAAAAAAAA=</HashCode> 
     284    </TypeIdentifier> 
     285  </Class> 
     286  <Class Name="Eraser.Manager.LanguageEnglishUK"> 
     287    <Position X="17.75" Y="8.5" Width="1.5" /> 
     288    <TypeIdentifier> 
     289      <FileName>Language.cs</FileName> 
     290      <HashCode>AABAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode> 
     291    </TypeIdentifier> 
     292  </Class> 
    262293  <Struct Name="Eraser.Manager.LogEntry" BaseTypeListCollapsed="true"> 
    263     <Position X="17.25" Y="3.5" Width="1.5" /> 
     294    <Position X="19" Y="1.5" Width="1.5" /> 
    264295    <TypeIdentifier> 
    265296      <FileName>Logger.cs</FileName> 
     
    279310    <TypeIdentifier> 
    280311      <FileName>Plugins.cs</FileName> 
    281       <HashCode>AAAAAAAAAAAAAQAAgAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode> 
     312      <HashCode>AAAAAABAAAEAAQAAgAAAAAQAAAAAAAAAAAAAAAAAAAA=</HashCode> 
    282313    </TypeIdentifier> 
    283314  </Interface> 
    284315  <Enum Name="Eraser.Manager.LogLevel"> 
    285     <Position X="17.25" Y="1.5" Width="1.5" /> 
     316    <Position X="19" Y="3.75" Width="1.5" /> 
    286317    <TypeIdentifier> 
    287318      <FileName>Logger.cs</FileName> 
  • branches/eraser6/Manager/Manager.cs

    r278 r307  
    1515            Instance = this; 
    1616            PRNGManager = new PRNGManager(); 
     17            LanguageManager = new LanguageManager(); 
    1718            ErasureMethodManager = new ErasureMethodManager(); 
    1819            Settings = new Settings(); 
     
    3132 
    3233        /// <summary> 
    33         /// The global instance of the PRNG Manager 
     34        /// The global instance of the PRNG Manager. 
    3435        /// </summary> 
    3536        internal PRNGManager PRNGManager; 
     37 
     38        /// <summary> 
     39        /// Global instance of the Language Manager. 
     40        /// </summary> 
     41        internal LanguageManager LanguageManager; 
    3642 
    3743        /// <summary> 
     
    4652 
    4753        /// <summary> 
    48         /// The global instance of the Plugin host 
     54        /// The global instance of the Plugin host. 
    4955        /// </summary> 
    5056        internal Plugin.DefaultHost Host; 
  • branches/eraser6/Manager/Manager.csproj

    r303 r307  
    3939    <Compile Include="DirectExecutor.cs" /> 
    4040    <Compile Include="Executor.cs" /> 
     41    <Compile Include="Language.cs" /> 
    4142    <Compile Include="Logger.cs" /> 
    4243    <Compile Include="Manager.cs" /> 
  • branches/eraser6/Manager/Settings.cs

    r303 r307  
    1010    public class Settings 
    1111    { 
     12        /// <summary> 
     13        /// The language which all user interface elements should be presented in. 
     14        /// This is a GUID since languages are supplied through plugins. 
     15        /// </summary> 
     16        public Guid UILanguage 
     17        { 
     18            get 
     19            { 
     20                lock (this) 
     21                    return uiLanguage; 
     22            } 
     23            set 
     24            { 
     25                lock (this) 
     26                    uiLanguage = value; 
     27            } 
     28        } 
     29 
    1230        /// <summary> 
    1331        /// The default file erasure method. This is a GUID since methods are 
     
    159177        } 
    160178 
     179        private Guid uiLanguage = Guid.Empty; 
    161180        private Guid defaultFileErasureMethod = Guid.Empty; 
    162181        private Guid defaultUnusedSpaceErasureMethod = Guid.Empty; 
Note: See TracChangeset for help on using the changeset viewer.