commit 32c3c198b8ceb924ab3977d7e882eca6359a5869 Author: Lncvrt Date: Wed Sep 16 11:37:47 2026 -0700 Initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..8787579 Binary files /dev/null and b/.DS_Store differ diff --git a/Password Generator.xcodeproj/project.pbxproj b/Password Generator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..86589be --- /dev/null +++ b/Password Generator.xcodeproj/project.pbxproj @@ -0,0 +1,308 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + CE88691C305B012E0072A31D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE88691B305B012E0072A31D /* Cocoa.framework */; }; + CE886926305B012E0072A31D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE886924305B012E0072A31D /* InfoPlist.strings */; }; + CE886928305B012E0072A31D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CE886927305B012E0072A31D /* main.m */; }; + CE88692C305B012E0072A31D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = CE88692A305B012E0072A31D /* Credits.rtf */; }; + CE88692F305B012E0072A31D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE88692E305B012E0072A31D /* AppDelegate.m */; }; + CE886932305B012E0072A31D /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE886930305B012E0072A31D /* MainMenu.xib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + CE886918305B012E0072A31D /* Password Generator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Password Generator.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + CE88691B305B012E0072A31D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + CE88691E305B012E0072A31D /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + CE88691F305B012E0072A31D /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + CE886920305B012E0072A31D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + CE886923305B012E0072A31D /* Password Generator-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Password Generator-Info.plist"; sourceTree = ""; }; + CE886925305B012E0072A31D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + CE886927305B012E0072A31D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + CE886929305B012E0072A31D /* Password Generator-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Password Generator-Prefix.pch"; sourceTree = ""; }; + CE88692B305B012E0072A31D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; + CE88692D305B012E0072A31D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + CE88692E305B012E0072A31D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + CE886931305B012E0072A31D /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + CE886915305B012E0072A31D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CE88691C305B012E0072A31D /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + CE88690F305B012E0072A31D = { + isa = PBXGroup; + children = ( + CE886921305B012E0072A31D /* Password Generator */, + CE88691A305B012E0072A31D /* Frameworks */, + CE886919305B012E0072A31D /* Products */, + ); + sourceTree = ""; + }; + CE886919305B012E0072A31D /* Products */ = { + isa = PBXGroup; + children = ( + CE886918305B012E0072A31D /* Password Generator.app */, + ); + name = Products; + sourceTree = ""; + }; + CE88691A305B012E0072A31D /* Frameworks */ = { + isa = PBXGroup; + children = ( + CE88691B305B012E0072A31D /* Cocoa.framework */, + CE88691D305B012E0072A31D /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + CE88691D305B012E0072A31D /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + CE88691E305B012E0072A31D /* AppKit.framework */, + CE88691F305B012E0072A31D /* CoreData.framework */, + CE886920305B012E0072A31D /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + CE886921305B012E0072A31D /* Password Generator */ = { + isa = PBXGroup; + children = ( + CE88692D305B012E0072A31D /* AppDelegate.h */, + CE88692E305B012E0072A31D /* AppDelegate.m */, + CE886930305B012E0072A31D /* MainMenu.xib */, + CE886922305B012E0072A31D /* Supporting Files */, + ); + path = "Password Generator"; + sourceTree = ""; + }; + CE886922305B012E0072A31D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + CE886923305B012E0072A31D /* Password Generator-Info.plist */, + CE886924305B012E0072A31D /* InfoPlist.strings */, + CE886927305B012E0072A31D /* main.m */, + CE886929305B012E0072A31D /* Password Generator-Prefix.pch */, + CE88692A305B012E0072A31D /* Credits.rtf */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + CE886917305B012E0072A31D /* Password Generator */ = { + isa = PBXNativeTarget; + buildConfigurationList = CE886935305B012E0072A31D /* Build configuration list for PBXNativeTarget "Password Generator" */; + buildPhases = ( + CE886914305B012E0072A31D /* Sources */, + CE886915305B012E0072A31D /* Frameworks */, + CE886916305B012E0072A31D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Password Generator"; + productName = "Password Generator"; + productReference = CE886918305B012E0072A31D /* Password Generator.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + CE886910305B012E0072A31D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + ORGANIZATIONNAME = User; + }; + buildConfigurationList = CE886913305B012E0072A31D /* Build configuration list for PBXProject "Password Generator" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = CE88690F305B012E0072A31D; + productRefGroup = CE886919305B012E0072A31D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + CE886917305B012E0072A31D /* Password Generator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + CE886916305B012E0072A31D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CE886926305B012E0072A31D /* InfoPlist.strings in Resources */, + CE88692C305B012E0072A31D /* Credits.rtf in Resources */, + CE886932305B012E0072A31D /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + CE886914305B012E0072A31D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CE886928305B012E0072A31D /* main.m in Sources */, + CE88692F305B012E0072A31D /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + CE886924305B012E0072A31D /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + CE886925305B012E0072A31D /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + CE88692A305B012E0072A31D /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + CE88692B305B012E0072A31D /* en */, + ); + name = Credits.rtf; + sourceTree = ""; + }; + CE886930305B012E0072A31D /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + CE886931305B012E0072A31D /* en */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + CE886933305B012E0072A31D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + CE886934305B012E0072A31D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + CE886936305B012E0072A31D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Password Generator/Password Generator-Prefix.pch"; + INFOPLIST_FILE = "Password Generator/Password Generator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + CE886937305B012E0072A31D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Password Generator/Password Generator-Prefix.pch"; + INFOPLIST_FILE = "Password Generator/Password Generator-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + CE886913305B012E0072A31D /* Build configuration list for PBXProject "Password Generator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE886933305B012E0072A31D /* Debug */, + CE886934305B012E0072A31D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CE886935305B012E0072A31D /* Build configuration list for PBXNativeTarget "Password Generator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE886936305B012E0072A31D /* Debug */, + CE886937305B012E0072A31D /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = CE886910305B012E0072A31D /* Project object */; +} diff --git a/Password Generator.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Password Generator.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..271631a --- /dev/null +++ b/Password Generator.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Password Generator.xcodeproj/project.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate b/Password Generator.xcodeproj/project.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..7f0f627 Binary files /dev/null and b/Password Generator.xcodeproj/project.xcworkspace/xcuserdata/user.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 0000000..dbe5f3e --- /dev/null +++ b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,18 @@ + + + + + + + diff --git a/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Password Generator.xcscheme b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Password Generator.xcscheme new file mode 100644 index 0000000..bf7f827 --- /dev/null +++ b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/Password Generator.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..12d0467 --- /dev/null +++ b/Password Generator.xcodeproj/xcuserdata/user.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Password Generator.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + CE886917305B012E0072A31D + + primary + + + + + diff --git a/Password Generator/.DS_Store b/Password Generator/.DS_Store new file mode 100644 index 0000000..6853487 Binary files /dev/null and b/Password Generator/.DS_Store differ diff --git a/Password Generator/AppDelegate.h b/Password Generator/AppDelegate.h new file mode 100644 index 0000000..499c081 --- /dev/null +++ b/Password Generator/AppDelegate.h @@ -0,0 +1,35 @@ +// +// AppDelegate.h +// Password Generator +// +// Created by User on 9/16/26. +// Copyright (c) 2026 User. All rights reserved. +// + +#import + +@interface AppDelegate : NSObject + +@property (assign) IBOutlet NSWindow *window; +@property (assign) IBOutlet NSTextField *lengthText; +@property (assign) IBOutlet NSSlider *lengthSlider; +@property (assign) IBOutlet NSTextField *outputBox; +@property (assign) IBOutlet NSButton *uppercaseCheck; +@property (assign) IBOutlet NSButton *lowercaseCheck; +@property (assign) IBOutlet NSButton *numbersCheck; +@property (assign) IBOutlet NSButton *symbolsCheck; +@property (assign) IBOutlet NSButton *regenerateButton; + +- (IBAction)lengthSliderChanged:(id)sender; + +- (IBAction)preset8ButtonClicked:(id)sender; +- (IBAction)preset16ButtonClicked:(id)sender; +- (IBAction)preset32ButtonClicked:(id)sender; +- (IBAction)preset64ButtonClicked:(id)sender; +- (IBAction)preset128ButtonClicked:(id)sender; + +- (IBAction)checkBoxChange:(id)sender; +- (IBAction)copyButtonClicked:(id)sender; +- (IBAction)regenerateButtonClicked:(id)sender; + +@end diff --git a/Password Generator/AppDelegate.m b/Password Generator/AppDelegate.m new file mode 100644 index 0000000..8a2c556 --- /dev/null +++ b/Password Generator/AppDelegate.m @@ -0,0 +1,89 @@ +// +// AppDelegate.m +// Password Generator +// +// Created by User on 9/16/26. +// Copyright (c) 2026 User. All rights reserved. +// + +#import "AppDelegate.h" + +@implementation AppDelegate + +- (void)dealloc +{ + [super dealloc]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + [self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target]; +} + +- (IBAction)lengthSliderChanged:(id)sender { + [self.lengthText setStringValue:[NSString stringWithFormat:@"Password Length: %ld", (long)[sender integerValue]]]; + [self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target]; +} + +// preset buttons + +- (IBAction)preset8ButtonClicked:(id)sender +{ + self.lengthSlider.integerValue = 8; + [self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target]; +} + +- (IBAction)preset16ButtonClicked:(id)sender +{ + self.lengthSlider.integerValue = 16; + [self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target]; +} + +- (IBAction)preset32ButtonClicked:(id)sender +{ + self.lengthSlider.integerValue = 32; + [self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target]; +} + +- (IBAction)preset64ButtonClicked:(id)sender +{ + self.lengthSlider.integerValue = 64; + [self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target]; +} + +- (IBAction)preset128ButtonClicked:(id)sender +{ + self.lengthSlider.integerValue = 128; + [self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target]; +} + +// end + +- (IBAction)checkBoxChange:(id)sender +{ + [self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target]; +} + +- (IBAction)regenerateButtonClicked:(id)sender { + NSMutableString *chars = [NSMutableString string]; + if ([self.uppercaseCheck state] == NSOnState) [chars appendString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZ"]; + if ([self.lowercaseCheck state] == NSOnState) [chars appendString:@"abcdefghijklmnopqrstuvwxyz"]; + if ([self.numbersCheck state] == NSOnState) [chars appendString:@"0123456789"]; + if ([self.symbolsCheck state] == NSOnState) [chars appendString:@"!@#$%^&*"]; + + if (chars.length == 0) { + [self.outputBox setStringValue:@""]; + return; + } + + NSMutableString *password = [NSMutableString stringWithCapacity:self.lengthSlider.integerValue]; + for (NSUInteger i = 0; i < self.lengthSlider.integerValue; i++) { + uint32_t randomIndex = arc4random_uniform((uint32_t)chars.length); + unichar c = [chars characterAtIndex:randomIndex]; + [password appendFormat:@"%C", c]; + } + + [self.outputBox setStringValue:[password copy]]; +} + +@end diff --git a/Password Generator/Password Generator-Info.plist b/Password Generator/Password Generator-Info.plist new file mode 100644 index 0000000..340e28c --- /dev/null +++ b/Password Generator/Password Generator-Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + xyz.lncvrt.xyz.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2026 User. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/Password Generator/Password Generator-Prefix.pch b/Password Generator/Password Generator-Prefix.pch new file mode 100644 index 0000000..3bdf9fd --- /dev/null +++ b/Password Generator/Password Generator-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Password Generator' target in the 'Password Generator' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Password Generator/en.lproj/Credits.rtf b/Password Generator/en.lproj/Credits.rtf new file mode 100644 index 0000000..46576ef --- /dev/null +++ b/Password Generator/en.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/Password Generator/en.lproj/InfoPlist.strings b/Password Generator/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Password Generator/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Password Generator/en.lproj/MainMenu.xib b/Password Generator/en.lproj/MainMenu.xib new file mode 100644 index 0000000..b982847 --- /dev/null +++ b/Password Generator/en.lproj/MainMenu.xib @@ -0,0 +1,2239 @@ + + + + 1070 + 11G63 + 3084 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + IBNSLayoutConstraint + NSButton + NSButtonCell + NSCustomObject + NSMenu + NSMenuItem + NSSlider + NSSliderCell + NSSplitView + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + + + Password Generator + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + Password Generator + + + + About Password Generator + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide Password Generator + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit Password Generator + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {400, 325}} + 1954021376 + Password Generator + NSWindow + + + {480, 325} + {400, 325} + + + 256 + + + + 268 + {{34, 288}, {333, 17}} + + + _NS:1535 + YES + + 68157504 + 138413056 + Select a length, or use the slider for a custom value. + + LucidaGrande + 13 + 1044 + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{100, 263}, {201, 17}} + + + _NS:1535 + YES + + 68157504 + 138413056 + Password Length: 8 + + _NS:1535 + + + + + + + + 268 + {{61, 236}, {279, 21}} + + + _NS:9 + YES + + -2080374784 + 0 + + _NS:9 + + 500 + 1 + 8 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + + + + 268 + {71, 29} + + + _NS:9 + YES + + 67108864 + 134217728 + 8 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{72, 0}, {71, 29}} + + + _NS:9 + YES + + 67108864 + 134217728 + 16 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{144, 0}, {72, 29}} + + + _NS:9 + YES + + 67108864 + 134217728 + 32 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{217, 0}, {71, 29}} + + + _NS:9 + YES + + 67108864 + 134217728 + 64 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{289, 0}, {71, 29}} + + + _NS:9 + YES + + 67108864 + 134217728 + 128 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + {{20, 203}, {360, 29}} + + + _NS:9 + YES + 2 + + + + 268 + {{144, 178}, {115, 17}} + + + _NS:1535 + YES + + 68157504 + 138413056 + Characters to use + + _NS:1535 + + + + + + + + 268 + {{101, 154}, {88, 18}} + + + _NS:9 + YES + + -2080374784 + 268435456 + Uppercase + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{212, 154}, {88, 18}} + + + _NS:9 + YES + + -2080374784 + 268435456 + Lowercase + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + + + + 268 + {{212, 134}, {75, 18}} + + + _NS:9 + YES + + -2080374784 + 268435456 + Symbols + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + + + + 268 + {{101, 134}, {80, 18}} + + + _NS:9 + YES + + -2080374784 + 268435456 + Numbers + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + + + + 268 + {{50, 48}, {300, 80}} + + + _NS:9 + {250, 750} + YES + + -2074083327 + 138416128 + + + _NS:9 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{97, 12}, {72, 32}} + + + _NS:9 + YES + + 67108864 + 134217728 + Copy + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{193, 12}, {111, 32}} + + + _NS:9 + YES + + 67108864 + 134217728 + Regenerate + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + {400, 325} + + + + {{0, 0}, {1920, 1058}} + {400, 347} + {480, 347} + YES + + + AppDelegate + + + NSFontManager + + + + + + + terminate: + + + + 449 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + delegate + + + + 495 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + performZoom: + + + + 240 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + window + + + + 532 + + + + copyButtonClicked: + + + + 795 + + + + regenerateButtonClicked: + + + + 796 + + + + preset8ButtonClicked: + + + + 797 + + + + preset16ButtonClicked: + + + + 798 + + + + preset32ButtonClicked: + + + + 799 + + + + preset64ButtonClicked: + + + + 800 + + + + preset128ButtonClicked: + + + + 801 + + + + outputBox + + + + 808 + + + + lengthSliderChanged: + + + + 809 + + + + lengthText + + + + 810 + + + + lengthSlider + + + + 811 + + + + uppercaseCheck + + + + 814 + + + + lowercaseCheck + + + + 815 + + + + numbersCheck + + + + 816 + + + + regenerateButton + + + + 818 + + + + symbolsCheck + + + + 819 + + + + checkBoxChange: + + + + 820 + + + + checkBoxChange: + + + + 821 + + + + checkBoxChange: + + + + 822 + + + + checkBoxChange: + + + + 823 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + + + + + + + + 19 + + + + + + + + 56 + + + + + + + + 57 + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 143 + + + + + 131 + + + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + + + + + + 296 + + + + + + + + + 297 + + + + + 298 + + + + + 371 + + + + + + + + 372 + + + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 6 + + 1000 + + 6 + 24 + 3 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 5 + 1 + + 147 + + 1000 + + 3 + 9 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 3 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + + + + + + + + + + + + + + + 420 + + + + + 494 + + + + + 545 + + + + + + 7 + 0 + + 0 + 1 + + 327 + + 1000 + + 3 + 9 + 1 + + + + + + 546 + + + + + 561 + + + + + 562 + + + + + + 7 + 0 + + 0 + 1 + + 195 + + 1000 + + 3 + 9 + 1 + + + + + + 563 + + + + + 573 + + + + + 570 + + + + + 578 + + + + + + 7 + 0 + + 0 + 1 + + 275 + + 1000 + + 3 + 9 + 1 + + + + + + 579 + + + + + 583 + + + + + 588 + + + + + 592 + + + + + 602 + + + + + + + + + + + + 652 + + + + + 654 + + + + + + 7 + 0 + + 0 + 1 + + 109 + + 1000 + + 3 + 9 + 1 + + + + + + 655 + + + + + 657 + + + + + 663 + + + + + 683 + + + + + + + + 684 + + + + + 685 + + + + + + + + 686 + + + + + 689 + + + + + + + + 690 + + + + + 693 + + + + + + + + 694 + + + + + 698 + + + + + 699 + + + + + + + + 700 + + + + + 704 + + + + + 705 + + + + + + + + 706 + + + + + 711 + + + + + + + + 712 + + + + + 724 + + + + + 687 + + + + + + + + 688 + + + + + 728 + + + + + 738 + + + + + + 7 + 0 + + 0 + 1 + + 300 + + 1000 + + 3 + 9 + 1 + + + + 8 + 0 + + 0 + 1 + + 80 + + 1000 + + 3 + 9 + 1 + + + + + + 739 + + + + + 746 + + + + + 749 + + + + + + + + 750 + + + + + 752 + + + + + 753 + + + + + + + + 754 + + + + + 740 + + + + + 717 + + + + + 730 + + + + + 715 + + + + + 737 + + + + + 735 + + + + + 589 + + + + + 733 + + + + + + + + 734 + + + + + 812 + + + + + 813 + + + + + 828 + + + + + 837 + + + + + 839 + + + + + 843 + + + + + 844 + + + + + 845 + + + + + 846 + + + + + 847 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{380, 496}, {480, 360}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 847 + + + 0 + IBCocoaFramework + YES + 3 + + {11, 11} + {10, 3} + {15, 15} + + YES + + diff --git a/Password Generator/main.m b/Password Generator/main.m new file mode 100644 index 0000000..573c09e --- /dev/null +++ b/Password Generator/main.m @@ -0,0 +1,14 @@ +// +// main.m +// Password Generator +// +// Created by User on 9/16/26. +// Copyright (c) 2026 User. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **)argv); +}