Skip to content
Permalink
Browse files

Merge pull request #679 from youknowone/configuration

Configuration Window 기초
  • Loading branch information...
youknowone committed Nov 4, 2019
2 parents 2414b58 + 7c524d5 commit 030c224e84bce8610cb6e5a95744235e989d3b21
@@ -69,6 +69,8 @@
386ECB8621537DEA0060D9BE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8521537DEA0060D9BE /* Assets.xcassets */; };
386ECB8921537DEA0060D9BE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8721537DEA0060D9BE /* Main.storyboard */; };
386ECBB1215385720060D9BE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 38162DF9141263280077AA2D /* InfoPlist.strings */; };
38710C02236EE8ED00405D41 /* Configuration.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38710C01236EE8ED00405D41 /* Configuration.storyboard */; };
38710C06236EE9A100405D41 /* ConfigurationWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38710C05236EE9A100405D41 /* ConfigurationWindow.swift */; };
3881866421EB23F3004B7FDB /* MockInputClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3881866221EB239E004B7FDB /* MockInputClient.m */; };
3881867E21EB2D7D004B7FDB /* OSXCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 3881867C21EB2D7D004B7FDB /* OSXCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
3881868121EB2D7D004B7FDB /* GureumCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3881867A21EB2D7D004B7FDB /* GureumCore.framework */; };
@@ -327,6 +329,8 @@
386ECB8521537DEA0060D9BE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
386ECB8821537DEA0060D9BE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
386ECB8A21537DEA0060D9BE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
38710C01236EE8ED00405D41 /* Configuration.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Configuration.storyboard; sourceTree = "<group>"; };
38710C05236EE9A100405D41 /* ConfigurationWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationWindow.swift; sourceTree = "<group>"; };
3881866121EB239D004B7FDB /* MockInputClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockInputClient.h; sourceTree = "<group>"; };
3881866221EB239E004B7FDB /* MockInputClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MockInputClient.m; sourceTree = "<group>"; };
3881866521EB24CA004B7FDB /* Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Bridge.h; path = GureumTests/Bridge.h; sourceTree = SOURCE_ROOT; };
@@ -482,6 +486,8 @@
38475AEB14129BAA0062100D /* Icons */,
38162DF7141263280077AA2D /* Supporting Files */,
38098F09215A3DB30001F159 /* Assets.xcassets */,
38710C01236EE8ED00405D41 /* Configuration.storyboard */,
38710C05236EE9A100405D41 /* ConfigurationWindow.swift */,
);
path = OSX;
sourceTree = "<group>";
@@ -600,6 +606,7 @@
3881867B21EB2D7D004B7FDB /* OSXCore */ = {
isa = PBXGroup;
children = (
38BFE81F18B4F181004B2B2E /* NSPrefPaneBundle.h */,
3881867C21EB2D7D004B7FDB /* OSXCore.h */,
3881867D21EB2D7D004B7FDB /* Info.plist */,
381DB19A21678B74005A37B9 /* Debug.swift */,
@@ -693,7 +700,6 @@
388186B321EB4E4C004B7FDB /* MockApp.swift */,
3881866121EB239D004B7FDB /* MockInputClient.h */,
3881866221EB239E004B7FDB /* MockInputClient.m */,
38BFE81F18B4F181004B2B2E /* NSPrefPaneBundle.h */,
38BFE80318B45419004B2B2E /* GureumObjCTests.m */,
38BFE7FE18B45419004B2B2E /* Supporting Files */,
);
@@ -977,6 +983,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
38710C02236EE8ED00405D41 /* Configuration.storyboard in Resources */,
382E68761A13156700031D1D /* Preferences.prefPane in Resources */,
38162DFB141263280077AA2D /* InfoPlist.strings in Resources */,
38162E4814128A740077AA2D /* MainMenu.xib in Resources */,
@@ -1243,6 +1250,7 @@
38B9547B229ED9BC00A9D6E1 /* AnswersHelper.swift in Sources */,
E5A0EA0A2139098800D4AD69 /* GureumAppDelegate.swift in Sources */,
38F85961215BD27000CD80AE /* main.swift in Sources */,
38710C06236EE9A100405D41 /* ConfigurationWindow.swift in Sources */,
3831983C21DB744900E20D78 /* UpdateManager.swift in Sources */,
388186AC21EB3FDD004B7FDB /* Debug.swift in Sources */,
E5ED2DE4213030B700BD9B13 /* GureumMenu.swift in Sources */,
@@ -7,4 +7,4 @@
//

#import "MockInputClient.h"
#import "NSPrefPaneBundle.h"
#import "OSXCore/NSPrefPaneBundle.h"
@@ -8,7 +8,7 @@

@import XCTest;

#import "NSPrefPaneBundle.h"
#import "OSXCore/NSPrefPaneBundle.h"
#import "Gureum-Swift.h"


@@ -3,3 +3,4 @@
//

#import "TISInputSource.h"
#import "OSXCore/NSPrefPaneBundle.h"
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="pWa-Qg-gE8">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
</dependencies>
<scenes>
<!--Window Controller-->
<scene sceneID="lqC-Y3-iGO">
<objects>
<windowController id="pWa-Qg-gE8" customClass="ConfiguraionWindowController" customModule="Gureum" customModuleProvider="target" sceneMemberID="viewController">
<window key="window" title="구름 환경설정" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="66I-Xz-bUA">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="245" y="301" width="480" height="270"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<connections>
<outlet property="delegate" destination="pWa-Qg-gE8" id="aoC-1O-t14"/>
</connections>
</window>
<connections>
<segue destination="eDV-rs-6D0" kind="relationship" relationship="window.shadowedContentViewController" id="vdX-Ok-Cxc"/>
</connections>
</windowController>
<customObject id="qIu-Nc-pzg" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-48" y="70"/>
</scene>
<!--Preference View Controller-->
<scene sceneID="bc9-Ml-T2f">
<objects>
<viewController id="eDV-rs-6D0" customClass="PreferenceViewController" customModule="Gureum" customModuleProvider="target" sceneMemberID="viewController"/>
<customObject id="Z4u-jb-X27" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="567" y="70"/>
</scene>
</scenes>
</document>
@@ -0,0 +1,33 @@
//
// ConfigurationWindow.swift
// OSX
//
// Created by Jeong YunWon on 2019/11/03.
// Copyright © 2019 youknowone.org. All rights reserved.
//
import Cocoa
import Foundation

class ConfiguraionWindowController: NSWindowController {}

class PreferenceViewController: NSViewController {
private let _isAtLeast10_15 = ProcessInfo().isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 10, minorVersion: 15, patchVersion: 0))

override func loadView() {
let path = Bundle.main.path(forResource: "Preferences", ofType: "prefPane")
let bundle = NSPrefPaneBundle(path: path)!
assert(bundle.bundle != nil)
assert(bundle.bundle.principalClass != nil)
if _isAtLeast10_15 {
let pane = NSPreferencePane(bundle: bundle.bundle)
pane.loadMainView()
view = pane.mainView
} else {
let loaded = bundle.instantiatePrefPaneObject()
assert(loaded)
let pane = bundle.prefPaneObject()!
view = pane.mainView
}
}
}
@@ -18,6 +18,13 @@ extension InputController {
answers.logMenu(name: "about")
}

@IBAction func showPreferencesWindow(_: Any) {
NSApp.activate(ignoringOtherApps: true)
let main = NSStoryboard(name: "Configuration", bundle: Bundle.main).instantiateInitialController() as! NSWindowController
NSLog("main: \(main)")
main.showWindow(nil)
}

@IBAction func checkRecentVersion(_: Any) {
answers.logMenu(name: "check-version")
guard let info = UpdateManager.shared.fetchOfficialVersionInfo() else {
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
@@ -25,6 +25,12 @@
<action selector="showStandardAboutPanel:" target="-1" id="yba-6W-HBg"/>
</connections>
</menuItem>
<menuItem title="환경설정..." id="b3F-HH-DpK">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showPreferencesWindow:" target="-1" id="yCC-7G-ltn"/>
</connections>
</menuItem>
<menuItem title="업데이트 확인" id="557">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
@@ -69,6 +75,7 @@
</connections>
</menuItem>
</items>
<point key="canvasLocation" x="139" y="152"/>
</menu>
</objects>
</document>
File renamed without changes.
@@ -3,4 +3,4 @@
//

#import "MockInputClient.h"
#import "GureumTests/NSPrefPaneBundle.h"
#import "OSXCore/NSPrefPaneBundle.h"
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -17,7 +17,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="176" y="715" width="400" height="618"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<view key="contentView" misplaced="YES" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="400" height="618"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -29,24 +29,24 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view translatesAutoresizingMaskIntoConstraints="NO" id="Mwx-RP-qRv">
<rect key="frame" x="0.0" y="-250" width="400" height="550"/>
<rect key="frame" x="0.0" y="-265" width="393" height="550"/>
<subviews>
<stackView distribution="fillEqually" orientation="vertical" alignment="leading" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kLe-bm-FOO">
<rect key="frame" x="20" y="7" width="360" height="526"/>
<rect key="frame" x="20" y="13" width="353" height="520"/>
<subviews>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Td-o5-z1h">
<rect key="frame" x="0.0" y="415" width="360" height="111"/>
<rect key="frame" x="0.0" y="413" width="353" height="107"/>
<subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DRr-ZG-wMG">
<rect key="frame" x="-2" y="94" width="101" height="17"/>
<rect key="frame" x="-2" y="91" width="102" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="시스템 단축키 설정" id="45X-EX-BbZ">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kC8-kH-2z7" userLabel="단축키 설정 설명">
<rect key="frame" x="-2" y="32" width="338" height="51"/>
<rect key="frame" x="-2" y="32" width="343" height="48"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="시스템 환경설정 → 키보드 → 단축키 → 입력 소스에서 설정
⇧스페이스와 같이 ⇧가 포함된 단축키로 설정하려면 Fn 키와 함께
눌러주세요. (예: Fn+⇧+스페이스)" id="Ndr-tA-evW">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -76,21 +76,21 @@
</customSpacing>
</stackView>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zbm-lz-J9a">
<rect key="frame" x="0.0" y="166" width="352" height="229"/>
<rect key="frame" x="0.0" y="165" width="353" height="228"/>
<subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yjR-ur-FpL">
<rect key="frame" x="-2" y="212" width="116" height="17"/>
<rect key="frame" x="-2" y="212" width="116" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="한글 입력기 고급 설정" id="HIp-u9-CIf">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="80" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4dQ-Ty-1Es">
<rect key="frame" x="0.0" y="181" width="352" height="20"/>
<rect key="frame" x="0.0" y="181" width="353" height="20"/>
<subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YGK-Vi-f1X">
<rect key="frame" x="-2" y="2" width="116" height="17"/>
<rect key="frame" x="-2" y="2" width="117" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="⌥(option) 키 동작:" id="jWu-1H-vJQ">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>

0 comments on commit 030c224

Please sign in to comment.
You can’t perform that action at this time.