First drafting for Password generator.

Extended Settings handling to be able to use Tabs
This commit is contained in:
michael starke
2013-03-31 15:57:41 +02:00
parent 476e18b870
commit a70aedb51e
22 changed files with 1123 additions and 125 deletions

12
MacPass/Defaults.plist Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PasswordEncoding</key>
<integer>0</integer>
<key>ClearClipboardOnQuit</key>
<true/>
<key>ClearClipboardIntervall</key>
<integer>10</integer>
</dict>
</plist>

View File

@@ -2,16 +2,19 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C3103</string>
<string key="IBDocument.SystemVersion">12D78</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBNSLayoutConstraint</string>
<string>NSBox</string>
<string>NSButton</string>
<string>NSButtonCell</string>
<string>NSCustomObject</string>
<string>NSCustomView</string>
<string>NSMenu</string>
@@ -42,23 +45,232 @@
<reference key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSBox" id="60918609">
<reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">12</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSView" id="731672371">
<reference key="NSNextResponder" ref="60918609"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="958810247">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{10, 42}, {124, 17}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="222890410"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="664984457">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents">Clear Copied Items</string>
<object class="NSFont" key="NSSupport" id="874940307">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="958810247"/>
<object class="NSColor" key="NSBackgroundColor" id="285770959">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="894002654">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSPopUpButton" id="222890410">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{137, 37}, {112, 26}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="326334884"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="934584997">
<int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="222890410"/>
<int key="NSButtonFlags">109199360</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="855032005">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">Never</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="45262901">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="738594033">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="437492746">
<string key="NSTitle">OtherViews</string>
<array class="NSMutableArray" key="NSMenuItems">
<reference ref="855032005"/>
<object class="NSMenuItem" id="303393620">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">10 Seconds</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<object class="NSMenuItem" id="460415455">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">30 Seconds</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<object class="NSMenuItem" id="678942088">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">1 Minute</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
</array>
<reference key="NSMenuFont" ref="874940307"/>
</object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
<int key="NSArrowPosition">2</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="326334884">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{11, 12}, {172, 18}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSHuggingPriority">{250, 150}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1025397159">
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">268435456</int>
<string key="NSContents">Clear Clipboard on Quit</string>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="326334884"/>
<int key="NSButtonFlags">1211912448</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSSwitch</string>
</object>
<object class="NSButtonImageSource" key="NSAlternateImage">
<string key="NSImageName">NSSwitch</string>
</object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{1, 1}, {258, 68}}</string>
<reference key="NSSuperview" ref="60918609"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="958810247"/>
<string key="NSReuseIdentifierKey">_NS:11</string>
</object>
</array>
<string key="NSFrame">{{17, 16}, {260, 84}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="731672371"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Clipboard</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">textBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
</object>
</object>
<reference key="NSContentView" ref="731672371"/>
<int key="NSBorderType">1</int>
<int key="NSBoxType">0</int>
<int key="NSTitlePosition">2</int>
<bool key="NSTransparent">NO</bool>
</object>
<object class="NSPopUpButton" id="421904700">
<reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{146, 91}, {127, 26}}</string>
<string key="NSFrame">{{156, 102}, {75, 26}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="60918609"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{750, 751}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="161510884">
<int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="874940307">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="421904700"/>
<int key="NSButtonFlags">109199360</int>
@@ -74,14 +286,8 @@
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="622518040">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="746261602">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/>
</object>
@@ -96,8 +302,8 @@
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="622518040"/>
<reference key="NSMixedImage" ref="746261602"/>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/>
</object>
@@ -107,14 +313,15 @@
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="622518040"/>
<reference key="NSMixedImage" ref="746261602"/>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/>
</object>
</array>
<reference key="NSMenuFont" ref="874940307"/>
</object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
@@ -125,7 +332,7 @@
<object class="NSTextField" id="637214120">
<reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 97}, {127, 17}}</string>
<string key="NSFrame">{{27, 108}, {126, 17}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="421904700"/>
@@ -138,29 +345,13 @@
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:1505</string>
<reference key="NSControlView" ref="637214120"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
<reference key="NSBackgroundColor" ref="285770959"/>
<reference key="NSTextColor" ref="894002654"/>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrameSize">{290, 135}</string>
<string key="NSFrameSize">{294, 146}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="637214120"/>
@@ -230,26 +421,10 @@
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="215335887">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="421904700"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="850330857">
<reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">3</int>
@@ -262,8 +437,8 @@
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="106372279">
@@ -298,24 +473,56 @@
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="689515169">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">7</int>
<object class="IBNSLayoutConstraint" id="486966584">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="421904700"/>
<int key="secondAttribute">7</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="528706521">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">4</int>
<int key="relation">1</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">5</int>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="968625034">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="637214120"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">8</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="989429017">
<reference key="firstItem" ref="637214120"/>
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1005"/>
@@ -330,6 +537,38 @@
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="471470495">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="377766604">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">30</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="180695068">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int>
@@ -346,6 +585,7 @@
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<reference ref="60918609"/>
</array>
<reference key="parent" ref="0"/>
</object>
@@ -408,11 +648,6 @@
<reference key="object" ref="180695068"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">62</int>
<reference key="object" ref="989429017"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">66</int>
<reference key="object" ref="704304955"/>
@@ -428,41 +663,313 @@
<reference key="object" ref="850330857"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">129</int>
<reference key="object" ref="689515169"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">130</int>
<reference key="object" ref="215335887"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">131</int>
<reference key="object" ref="835508122"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">465</int>
<reference key="object" ref="60918609"/>
<array class="NSMutableArray" key="children">
<reference ref="958810247"/>
<object class="IBNSLayoutConstraint" id="1026891195">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">6</int>
<int key="relation">1</int>
<reference key="secondItem" ref="222890410"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">10</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="631645975">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">10</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">10</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="313818908">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">8</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="864404219">
<reference key="firstItem" ref="326334884"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">14</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="983442674">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="326334884"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="572992125">
<reference key="firstItem" ref="326334884"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="817243601">
<reference key="firstItem" ref="958810247"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<reference ref="222890410"/>
<reference ref="326334884"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">431</int>
<reference key="object" ref="958810247"/>
<array class="NSMutableArray" key="children">
<reference ref="664984457"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">432</int>
<reference key="object" ref="664984457"/>
<reference key="parent" ref="958810247"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">471</int>
<reference key="object" ref="817243601"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">473</int>
<reference key="object" ref="471470495"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">475</int>
<reference key="object" ref="989429017"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">419</int>
<reference key="object" ref="222890410"/>
<array class="NSMutableArray" key="children">
<object class="IBNSLayoutConstraint" id="943587685">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">107</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="222890410"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
<reference ref="934584997"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">458</int>
<reference key="object" ref="943587685"/>
<reference key="parent" ref="222890410"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">420</int>
<reference key="object" ref="934584997"/>
<array class="NSMutableArray" key="children">
<reference ref="437492746"/>
</array>
<reference key="parent" ref="222890410"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">421</int>
<reference key="object" ref="437492746"/>
<array class="NSMutableArray" key="children">
<reference ref="855032005"/>
<reference ref="678942088"/>
<reference ref="460415455"/>
<reference ref="303393620"/>
</array>
<reference key="parent" ref="934584997"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">429</int>
<reference key="object" ref="855032005"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">424</int>
<reference key="object" ref="678942088"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">423</int>
<reference key="object" ref="460415455"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">422</int>
<reference key="object" ref="303393620"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">478</int>
<reference key="object" ref="313818908"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">479</int>
<reference key="object" ref="631645975"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">447</int>
<reference key="object" ref="326334884"/>
<array class="NSMutableArray" key="children">
<reference ref="1025397159"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">448</int>
<reference key="object" ref="1025397159"/>
<reference key="parent" ref="326334884"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">481</int>
<reference key="object" ref="377766604"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">482</int>
<reference key="object" ref="572992125"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">485</int>
<reference key="object" ref="983442674"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">486</int>
<reference key="object" ref="968625034"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">487</int>
<reference key="object" ref="528706521"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">489</int>
<reference key="object" ref="864404219"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">492</int>
<reference key="object" ref="486966584"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">494</int>
<reference key="object" ref="1026891195"/>
<reference key="parent" ref="60918609"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints">
<array key="1.IBNSViewMetadataConstraints">
<reference ref="180695068"/>
<reference ref="377766604"/>
<reference ref="471470495"/>
<reference ref="989429017"/>
<reference ref="689515169"/>
<reference ref="968625034"/>
<reference ref="528706521"/>
<reference ref="486966584"/>
<reference ref="704304955"/>
<reference ref="106372279"/>
<reference ref="850330857"/>
<reference ref="215335887"/>
<reference ref="835508122"/>
</array>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="14.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -471,8 +978,49 @@
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="419.IBNSViewMetadataConstraints">
<reference ref="943587685"/>
</array>
<boolean value="NO" key="419.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="419.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="420.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="421.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="422.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="423.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="424.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="429.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="431.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="431.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="432.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="447.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="447.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="448.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="458.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="465.IBNSViewMetadataConstraints">
<reference ref="817243601"/>
<reference ref="572992125"/>
<reference ref="983442674"/>
<reference ref="864404219"/>
<reference ref="313818908"/>
<reference ref="631645975"/>
<reference ref="1026891195"/>
</array>
<boolean value="NO" key="465.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="471.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="473.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="475.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="478.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="479.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="481.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="482.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="485.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="486.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="487.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="489.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="492.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="494.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="59.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="62.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="68.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="8.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
@@ -483,13 +1031,21 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">418</int>
<int key="maxID">494</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">MPGeneralSettingsController</string>
<string key="className">MPAbstractSettingsViewController</string>
<string key="superclassName">MPViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPAbstractSettingsViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MPGeneralSettingsController</string>
<string key="superclassName">MPAbstractSettingsViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="encodingPopup">NSPopUpButton</string>
<string key="imageView">NSImageView</string>
@@ -534,6 +1090,7 @@
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{11, 11}</string>
<string key="NSMenuMixedState">{10, 3}</string>
<string key="NSSwitch">{15, 15}</string>
</dictionary>
<bool key="IBDocument.UseAutolayout">YES</bool>
</data>

View File

@@ -0,0 +1,14 @@
//
// MPAbstractSettingsViewController.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPSettingsTab.h"
#import "MPViewController.h"
@interface MPAbstractSettingsViewController : MPViewController <MPSettingsTab>
@end

View File

@@ -0,0 +1,17 @@
//
// MPAbstractSettingsViewController.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPAbstractSettingsViewController.h"
@implementation MPAbstractSettingsViewController
+ (NSString *)identifier {
return @"NONAME";
}
@end

View File

@@ -12,18 +12,27 @@
#import "MPSettingsController.h"
#import "MPDatabaseController.h"
#import "MPActionHelper.h"
#import "NSString+MPPasswordCreation.h"
@interface MPAppDelegate ()
@property (retain) MPSettingsController *settingsController;
@property (retain) MPMainWindowController *mainWindowController;
@property (retain, nonatomic) MPSettingsController *settingsController;
@property (retain, nonatomic) MPMainWindowController *mainWindowController;
- (IBAction)showPreferences:(id)sender;
@end
@implementation MPAppDelegate
+ (void)initialize {
NSURL *defaultURL = [[NSBundle mainBundle] URLForResource:@"Defaults" withExtension:@"plst"];
NSDictionary *defaultsDictionary = [NSDictionary dictionaryWithContentsOfURL:defaultURL];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDictionary];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
//NSString *string = [NSString passwordFromString:@"BOJA" length:10];
self.mainWindowController = [[[MPMainWindowController alloc] init] autorelease];
[self.mainWindowController showWindow:[self.mainWindowController window]];
@@ -49,7 +58,7 @@
if(self.settingsController == nil) {
self.settingsController = [[[MPSettingsController alloc] init] autorelease];
}
[self.settingsController showWindow:_settingsController.window];
[self.settingsController showSettings];
}
- (NSArray *)contextMenuItemsWithItems:(MPContextMenuItemsFlags)flags {
@@ -117,4 +126,6 @@
return items;
}
@end

View File

@@ -7,10 +7,9 @@
//
#import <Cocoa/Cocoa.h>
#import "MPSettingsTabProtocoll.h"
#import "MPViewController.h"
#import "MPAbstractSettingsViewController.h"
@interface MPGeneralSettingsController : MPViewController <MPSettingsTabProtocoll>
@interface MPGeneralSettingsController : MPAbstractSettingsViewController <MPSettingsTab>
@property (assign) IBOutlet NSImageView *imageView;
@end

View File

@@ -21,10 +21,6 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
return MPGeneralSetingsIdentifier;
}
+ (NSImage *)image {
return [NSImage imageNamed:NSImageNamePreferencesGeneral];
}
- (id)init {
return [self initWithNibName:@"GeneralSettings" bundle:[NSBundle mainBundle]];
}
@@ -34,6 +30,14 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
return self;
}
- (NSImage *)image {
return [NSImage imageNamed:NSImageNamePreferencesGeneral];
}
- (NSString *)label {
return NSLocalizedString(@"GENERAL_SETTINGS", @"General Settings Label");
}
- (void)didLoadView {
// setup connections
NSMenu *encodingMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] init];

View File

@@ -8,7 +8,11 @@
#import <Cocoa/Cocoa.h>
APPKIT_EXTERN NSString const* kMPPasswordEnvodingSettingsKey;
@protocol MPSettingsTab;
@interface MPSettingsController : NSWindowController <NSToolbarDelegate>
- (void)showSettings;
- (void)showSettingsTabWithIdentifier:(NSString *)identifier;
@interface MPSettingsController : NSWindowController
@end

View File

@@ -9,28 +9,148 @@
#import "MPSettingsController.h"
#import "MPGeneralSettingsController.h"
NSString const* kMPPasswordEnvodingSettingsKey = @"PasswordEncoding";
@interface MPSettingsController ()
@property (retain) MPGeneralSettingsController *generalController;
@property (retain, nonatomic) NSToolbar *toolbar;
@property (retain, nonatomic) NSMutableDictionary *settingsController;
@property (retain, nonatomic) NSMutableDictionary *toolbarItems;
- (void)_addSettingsTab:(id<MPSettingsTab>)tabController;
- (void)_setupDefaultSettingsTabs;
- (void)_showSettingsTab:(id)sender;
@end
@implementation MPSettingsController
-(id)init {
self = [super initWithWindowNibName:@"SettingsWindow"];
if(self) {
_toolbar = [[NSToolbar alloc] initWithIdentifier:@"SettingsToolBar"];
[self.toolbar setAllowsUserCustomization:NO];
[self.toolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
_settingsController = [[NSMutableDictionary alloc] initWithCapacity:5];
_toolbarItems = [[NSMutableDictionary alloc] initWithCapacity:5];
[self _setupDefaultSettingsTabs];
[self.toolbar setDelegate:self];
[[self window] setToolbar:self.toolbar];
}
return self;
}
- (void)dealloc {
self.generalController = nil;
[_settingsController release];
[_toolbar release];
[_toolbarItems release];
[super dealloc];
}
- (void)windowDidLoad {
_generalController = [[MPGeneralSettingsController alloc] init];
[_generalController loadView];
[[self window] setContentView:[_generalController view]];
- (void)showSettings {
if([self.settingsController count] > 0) {
id<MPSettingsTab> tab = [self.settingsController allValues][0];
NSString *identifier = [[tab class] identifier];
[self showSettingsTabWithIdentifier:identifier];
}
}
- (void)showSettingsTabWithIdentifier:(NSString *)identifier {
if(nil == identifier) {
@throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Identifier cannot be nil" userInfo:nil];
}
id<MPSettingsTab> tab = self.settingsController[identifier];
if(tab == nil){
NSLog(@"Warning. Unknow settingscontroller for identifier: %@. Did you miss to add the controller?", identifier);
return;
}
NSViewController *tabViewController = (NSViewController *)tab;
[self.toolbar setSelectedItemIdentifier:identifier];
NSRect newRect = [[self window] frameRectForContentRect:[tabViewController.view frame]];
newRect.origin = [[self window] frame].origin;
newRect.origin.y += [[self window] frame].size.height - newRect.size.height;
[[self window] setFrame:newRect display:YES animate:YES];
[[self window] setContentView:tabViewController.view];
[[self window] makeKeyAndOrderFront:[self window]];
}
- (void)_addSettingsTab:(id<MPSettingsTab>)tabController {
if(NO == [tabController conformsToProtocol:@protocol(MPSettingsTab)]) {
NSException *protocollException = [NSException exceptionWithName:NSInvalidArgumentException
reason:@"Controller must conform to MPSettingsTabProtrocoll"
userInfo:nil];
@throw protocollException;
}
if(NO == [tabController isKindOfClass:[NSViewController class]]) {
NSException *controllerException = [NSException exceptionWithName:NSInvalidArgumentException
reason:@"Controller is no NSViewController"
userInfo:nil];
@throw controllerException;
}
NSString *identifier = [[tabController class] identifier];
if(nil != self.settingsController[identifier]) {
NSLog(@"Warning: Settingscontroller with identifer %@ already present!", identifier);
}
else {
self.settingsController[identifier] = tabController;
}
}
- (void)_setupDefaultSettingsTabs {
MPGeneralSettingsController *generalSettingsController = [[MPGeneralSettingsController alloc] init];
[self _addSettingsTab:generalSettingsController];
[generalSettingsController release];
}
- (void)_showSettingsTab:(id)sender {
if([sender respondsToSelector:@selector(identifier)]) {
NSString *identfier = [sender identifier];
[self showSettingsTabWithIdentifier:identfier];
}
}
#pragma mark NSToolbarDelegate
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag {
NSToolbarItem *item = self.toolbarItems[itemIdentifier];
if(nil == item) {
item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
/*
Setup the item to use the controllers label if one is present
and supports the appropriate @optional protocoll messages
*/
id<MPSettingsTab> tab = self.settingsController[itemIdentifier];
if([tab respondsToSelector:@selector(label)]) {
[item setLabel:[tab label]];
}
else {
[item setLabel:itemIdentifier];
}
if([tab respondsToSelector:@selector(image)]) {
[item setImage:[tab image]];
}
else {
[item setImage:[NSImage imageNamed:NSImageNameCaution ]];
}
[item setAction:@selector(_showSettingsTab:)];
self.toolbarItems[itemIdentifier] = item;
}
return item;
}
@end

13
MacPass/MPSettingsKeys.h Normal file
View File

@@ -0,0 +1,13 @@
//
// MPSettingsKeys.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
extern NSString *const kMPSettingsKeyClearClipboardIntervall;
extern NSString *const kMPSettingsKeyClearClipboardOnQuit;
extern NSString *const kMPSettingsKeyPasswordEncoding;

13
MacPass/MPSettingsKeys.m Normal file
View File

@@ -0,0 +1,13 @@
//
// MPSettingsKeys.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPSettingsKeys.h"
NSString *const kMPSettingsKeyClearClipboardIntervall = @"ClearClipboardIntervall";
NSString *const kMPSettingsKeyClearClipboardOnQuit = @"ClearClipboardOnQuit";
NSString *const kMPSettingsKeyPasswordEncoding = @"PasswordEncoding";

View File

@@ -8,10 +8,17 @@
#import <Foundation/Foundation.h>
@protocol MPSettingsTabProtocoll <NSObject>
/*
Protrocoll to be implemented by ViewControllers that can be added to
the settings windows. Tabs are orded as the controllers are included.
*/
@protocol MPSettingsTab <NSObject>
@required
+ (NSString *)identifier;
+ (NSImage *)image;
@optional
- (NSString *)label;
- (NSImage *)image;
@end

View File

@@ -21,7 +21,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>599</string>
<string>5EA</string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>

View File

@@ -0,0 +1,15 @@
//
// NSData+MPRandomBytes.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSData (MPRandomBytes)
+ (NSData *)dataWithRandomBytes:(NSUInteger)lenght;
@end

View File

@@ -0,0 +1,20 @@
//
// NSData+MPRandomBytes.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSData+MPRandomBytes.h"
#import <Security/SecRandom.h>
@implementation NSData (MPRandomBytes)
+ (NSData *)dataWithRandomBytes:(NSUInteger)length {
unsigned char *bytes = malloc(sizeof(unsigned char) * length);
SecRandomCopyBytes(kSecRandomDefault, length, bytes);
return [NSData dataWithBytesNoCopy:bytes length:length freeWhenDone:YES];
}
@end

View File

@@ -0,0 +1,23 @@
//
// NSString+MPPasswordAnalysis.h
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum {
MPPasswordWeak,
MPPasswordOK,
MPPasswordGood,
MPPasswordStrong,
MPPasswordExcelent,
} MPPasswordStrength;
@interface NSString (MPPasswordAnalysis)
- (MPPasswordStrength)passwordStrenght;
@end

View File

@@ -0,0 +1,17 @@
//
// NSString+MPPasswordAnalysis.m
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSString+MPPasswordAnalysis.h"
@implementation NSString (MPPasswordAnalysis)
- (MPPasswordStrength)passwordStrenght {
return MPPasswordOK;
}
@end

View File

@@ -0,0 +1,45 @@
//
// NSString+MPPasswordCreation.h
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum {
MPPasswordCharactersUpperCase = (1<<0), // NSCharacterset lowerCaseCharacterSet
MPPasswordCharactersLowerCase = (1<<1), // NSCharacterSet upperCaseCharacterSet
MPPasswordCharactersNumbers = (1<<2), // NSCharacterSet numberCharacterSet
MPPasswordCharactersSymbols = (1<<3) // NSCharacterSet symbolCharacterSet
} MPPasswordCharacterFlags;
@interface NSString (MPPasswordCreation)
/*
Generates a new password with the allowed charaters an the requests lenght
@param array with allowed NSChractersSets for creation
@param lenght lenght of the password to create
*/
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)theLength;
/*
Generates a new password with the given length and allowed characters
@param Source string of allowed characters
@param lenght Lenght of the password to create
@return Password
*/
+ (NSString *)passwordFromString:(NSString *)source length:(NSUInteger)length;
/*
Creates a password containing only the characters in the string
@param Lenght of the password
*/
- (NSString *)passwordWithLength:(NSUInteger)length;
/*
Returns a random Character from the String
*/
- (NSString *)randomCharacter;
@end

View File

@@ -0,0 +1,65 @@
//
// NSString+MPPasswordCreation.m
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSString+MPPasswordCreation.h"
#import "NSData+MPRandomBytes.h"
@implementation NSString (MPPasswordCreationTools)
+ (NSDictionary *)_createPasswordSet:(MPPasswordCharacterFlags)flags {
return [NSDictionary dictionary];
}
- (NSDictionary *)_createPasswordSet:(MPPasswordCharacterFlags)flags {
return [NSString _createPasswordSet:flags];
}
@end
@implementation NSString (MPPasswordCreation)
+ (NSString *)passwordFromString:(NSString *)source length:(NSUInteger)length {
NSMutableString *password = [[NSMutableString alloc] initWithCapacity:length];
while([password length] < length) {
NSData *randomData = [NSData dataWithRandomBytes:2];
NSNumber *number = [NSNumber numberWithUnsignedChar:(unsigned char)[randomData bytes]];
NSLog(@"Random number:%@", number);
[password appendString:@"U"];
}
return [password autorelease];
}
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)length {
NSDictionary *characterSet = [self _createPasswordSet:allowedCharacters];
NSMutableString *password = [NSMutableString stringWithCapacity:length];
while([password length] < length) {
// decide what charactersupset to use
// gather random character of selected set
NSString *characters = characterSet[@(MPPasswordCharactersLowerCase)];
[password appendString:[characters randomCharacter]];
}
return password;
}
- (NSString *)passwordWithLength:(NSUInteger)length {
return [NSString passwordFromString:self length:length];
}
- (NSString *)randomCharacter {
NSUInteger randomByteSize = floor(log2([self length]));
NSData *randomData = [NSData dataWithRandomBytes:randomByteSize];
NSNumber *number = [NSNumber numberWithUnsignedChar:(unsigned char)[randomData bytes]];
NSUInteger randomIndex = [number integerValue];
if(randomIndex > 0 || randomIndex >= [self length]) {
return nil;
}
return [self substringFromIndex:[number integerValue]];
}
@end

View File

@@ -2,10 +2,10 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C60</string>
<string key="IBDocument.SystemVersion">12D78</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">3084</string>
@@ -33,9 +33,9 @@
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowStyleMask">7</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {473, 263}}</string>
<string key="NSWindowRect">{{196, 240}, {223, 156}}</string>
<int key="NSWTFlags">544735232</int>
<string key="NSWindowTitle">Window</string>
<string key="NSWindowClass">NSWindow</string>
@@ -45,11 +45,11 @@
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrameSize">{473, 263}</string>
<string key="NSFrameSize">{223, 156}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>

Binary file not shown.