mirror of
https://github.com/MonitorControl/MonitorControl.git
synced 2026-06-03 06:02:21 -06:00
🎉 v1.5.0
Cleanup for v1.5.0
This commit is contained in:
parent
b32d2d5785
commit
99bc6711a0
25 changed files with 114 additions and 76 deletions
344
MonitorControl/UI/Base.lproj/Main.storyboard
Normal file
344
MonitorControl/UI/Base.lproj/Main.storyboard
Normal file
|
|
@ -0,0 +1,344 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Keys Prefs View Controller-->
|
||||
<scene sceneID="DmR-ia-4qL">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="KeysPrefsVC" id="MHy-Dv-i5A" customClass="KeysPrefsViewController" customModule="MonitorControl" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" id="nfK-n0-xN4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="108"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fUf-UM-yW3">
|
||||
<rect key="frame" x="85" y="17" width="197" height="25"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Both Brightness & Volume" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Vr4-xb-B4o" id="DkZ-as-YDS">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="Hqj-cU-ZyP">
|
||||
<items>
|
||||
<menuItem title="Both Brightness & Volume" state="on" id="Vr4-xb-B4o">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Brightness only" tag="1" id="hjz-0c-rvK">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Volume only" tag="2" id="NLP-dU-Dam">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<action selector="listenForChanged:" target="MHy-Dv-i5A" id="ANw-zX-wOu"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jFY-ug-0KQ">
|
||||
<rect key="frame" x="18" y="22" width="61" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Listen for" id="Vh8-06-U3K">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uti-Vm-YwB">
|
||||
<rect key="frame" x="18" y="59" width="59" height="29"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Keys" id="Dcz-GG-1li">
|
||||
<font key="font" metaFont="systemBold" size="24"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="fUf-UM-yW3" firstAttribute="centerY" secondItem="jFY-ug-0KQ" secondAttribute="centerY" id="FA2-Mh-LBe"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="fUf-UM-yW3" secondAttribute="trailing" constant="20" id="GBB-mP-L7K"/>
|
||||
<constraint firstItem="Uti-Vm-YwB" firstAttribute="leading" secondItem="nfK-n0-xN4" secondAttribute="leading" constant="20" id="Mfl-NR-mVk"/>
|
||||
<constraint firstItem="Uti-Vm-YwB" firstAttribute="top" secondItem="nfK-n0-xN4" secondAttribute="top" constant="20" id="ReX-zz-skV"/>
|
||||
<constraint firstAttribute="bottom" secondItem="fUf-UM-yW3" secondAttribute="bottom" constant="20" id="Rys-Fj-Tne"/>
|
||||
<constraint firstItem="fUf-UM-yW3" firstAttribute="leading" secondItem="jFY-ug-0KQ" secondAttribute="trailing" constant="10" id="Tic-nC-Oax"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Uti-Vm-YwB" secondAttribute="trailing" constant="20" id="ctI-eo-jEw"/>
|
||||
<constraint firstItem="jFY-ug-0KQ" firstAttribute="top" secondItem="Uti-Vm-YwB" secondAttribute="bottom" constant="20" id="t7Y-Pv-HlI"/>
|
||||
<constraint firstItem="jFY-ug-0KQ" firstAttribute="leading" secondItem="nfK-n0-xN4" secondAttribute="leading" constant="20" id="xCB-fT-tMo"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="listenFor" destination="fUf-UM-yW3" id="tgS-jF-nte"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="hVj-0D-6XC" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="642" y="163"/>
|
||||
</scene>
|
||||
<!--Display Prefs View Controller-->
|
||||
<scene sceneID="kdt-oj-Qke">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="DisplayPrefsVC" id="NAx-6T-ZPc" customClass="DisplayPrefsViewController" customModule="MonitorControl" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" id="EBf-qN-KaN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="223"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uXD-ZY-N3H">
|
||||
<rect key="frame" x="18" y="174" width="88" height="29"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Display" id="ExD-7P-6XI">
|
||||
<font key="font" metaFont="systemBold" size="24"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B5k-we-kuP">
|
||||
<rect key="frame" x="20" y="20" width="360" height="100"/>
|
||||
<clipView key="contentView" drawsBackground="NO" id="4ot-Jo-X5O">
|
||||
<rect key="frame" x="1" y="0.0" width="358" height="99"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowSizeStyle="automatic" headerView="ckY-Px-mJn" viewBased="YES" id="dyo-uY-pMe">
|
||||
<rect key="frame" x="0.0" y="0.0" width="358" height="76"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="49" minWidth="40" maxWidth="1000" id="8U8-ec-Zbv">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Enabled">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<customCell key="dataCell" alignment="left" id="Dzg-gO-DMd"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="Fzp-05-e2y" customClass="ButtonCellView" customModule="MonitorControl" customModuleProvider="target">
|
||||
<rect key="frame" x="1" y="1" width="49" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OJu-lv-bAA">
|
||||
<rect key="frame" x="0.0" y="0.0" width="49" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" bezelStyle="regularSquare" imagePosition="overlaps" state="on" inset="2" id="EjF-JQ-tUb">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="buttonToggled:" target="Fzp-05-e2y" id="sNo-1W-2Dw"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="button" destination="OJu-lv-bAA" id="Mlq-Sp-j03"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn width="186" minWidth="40" maxWidth="1000" id="CHc-s5-4MN">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Display Name">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="2gr-xG-Byx">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="iYj-Ud-yGU">
|
||||
<rect key="frame" x="53" y="1" width="186" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qsc-jC-vJQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="186" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="aSw-3H-uNa">
|
||||
<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>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="qsc-jC-vJQ" id="q3A-ci-C4X"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn width="114" minWidth="10" maxWidth="3.4028234663852886e+38" id="dgp-q7-cBK">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Display Id">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="as0-t3-Aub">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="vw4-Us-VHk">
|
||||
<rect key="frame" x="242" y="1" width="114" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="z5b-Gr-EmC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="114" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="cnb-Li-1lE">
|
||||
<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>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="z5b-Gr-EmC" id="dGr-mQ-Nbm"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="NAx-6T-ZPc" id="QTF-WU-oAy"/>
|
||||
<outlet property="delegate" destination="NAx-6T-ZPc" id="VNm-H1-xFG"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<nil key="backgroundColor"/>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="UHx-W7-xSv">
|
||||
<rect key="frame" x="-100" y="-100" width="358" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="HBR-36-UaL">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" id="ckY-Px-mJn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="358" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
</scrollView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Y48-gQ-uJi">
|
||||
<rect key="frame" x="18" y="138" width="275" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Change Brightness/Volume for all screens" bezelStyle="regularSquare" imagePosition="left" inset="2" id="0Z7-PQ-Bl8">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="allScreensTouched:" target="NAx-6T-ZPc" id="Dds-RT-coJ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Y48-gQ-uJi" secondAttribute="trailing" constant="20" id="24u-jX-VqD"/>
|
||||
<constraint firstItem="B5k-we-kuP" firstAttribute="top" secondItem="Y48-gQ-uJi" secondAttribute="bottom" constant="20" id="4l9-vD-MBp"/>
|
||||
<constraint firstItem="Y48-gQ-uJi" firstAttribute="leading" secondItem="EBf-qN-KaN" secondAttribute="leading" constant="20" id="Ct2-ah-W0a"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="uXD-ZY-N3H" secondAttribute="trailing" constant="20" id="Qwk-xy-tL4"/>
|
||||
<constraint firstAttribute="trailing" secondItem="B5k-we-kuP" secondAttribute="trailing" constant="20" id="SgW-60-zGH"/>
|
||||
<constraint firstItem="Y48-gQ-uJi" firstAttribute="top" secondItem="uXD-ZY-N3H" secondAttribute="bottom" constant="20" id="WSd-oq-oD7"/>
|
||||
<constraint firstAttribute="bottom" secondItem="B5k-we-kuP" secondAttribute="bottom" constant="20" id="dfj-cp-Rh1"/>
|
||||
<constraint firstItem="uXD-ZY-N3H" firstAttribute="top" secondItem="EBf-qN-KaN" secondAttribute="top" constant="20" id="jAo-pS-Y7d"/>
|
||||
<constraint firstItem="B5k-we-kuP" firstAttribute="leading" secondItem="EBf-qN-KaN" secondAttribute="leading" constant="20" id="uZk-3q-LOM"/>
|
||||
<constraint firstItem="uXD-ZY-N3H" firstAttribute="leading" secondItem="EBf-qN-KaN" secondAttribute="leading" constant="20" id="wi7-HQ-h6O"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="allScreens" destination="Y48-gQ-uJi" id="TDW-HZ-0vl"/>
|
||||
<outlet property="displayList" destination="dyo-uY-pMe" id="gDj-Sn-kDj"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="34q-0u-YTQ" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1116" y="224"/>
|
||||
</scene>
|
||||
<!--Main Prefs View Controller-->
|
||||
<scene sceneID="zAg-r8-WQ5">
|
||||
<objects>
|
||||
<viewController storyboardIdentifier="MainPrefsVC" id="BGD-tY-Myx" customClass="MainPrefsViewController" customModule="MonitorControl" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" id="COE-Oc-gZs">
|
||||
<rect key="frame" x="0.0" y="0.0" width="404" height="208"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="siR-fL-v2a">
|
||||
<rect key="frame" x="18" y="159" width="92" height="29"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="General" id="ENU-js-huy">
|
||||
<font key="font" metaFont="systemBold" size="24"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9Gu-aU-Td2">
|
||||
<rect key="frame" x="18" y="86" width="199" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Start MonitorControl at Login" bezelStyle="regularSquare" imagePosition="left" inset="2" id="j72-NF-zsW">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="startAtLoginClicked:" target="BGD-tY-Myx" id="QvH-5O-Lck"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xGa-qG-9ut">
|
||||
<rect key="frame" x="18" y="52" width="177" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Show a slider for contrast" bezelStyle="regularSquare" imagePosition="left" inset="2" id="xSI-8W-Xd0">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="showContrastSliderClicked:" target="BGD-tY-Myx" id="Jek-jL-YMn"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="i5K-Cd-wxm">
|
||||
<rect key="frame" x="18" y="18" width="215" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Lower Contrast after Brightness" bezelStyle="regularSquare" imagePosition="left" inset="2" id="fhy-Er-0aI">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="lowerContrastClicked:" target="BGD-tY-Myx" id="iTd-hI-jbv"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tMg-qE-zTW">
|
||||
<rect key="frame" x="18" y="122" width="138" height="17"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Version 0.0.0 (Build 0)" id="mBs-6m-13Q">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="i5K-Cd-wxm" secondAttribute="trailing" constant="20" id="7p3-HQ-gLl"/>
|
||||
<constraint firstItem="xGa-qG-9ut" firstAttribute="top" secondItem="9Gu-aU-Td2" secondAttribute="bottom" constant="20" id="DOL-i0-bCI"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="9Gu-aU-Td2" secondAttribute="trailing" constant="20" id="Gft-KX-rdy"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="xGa-qG-9ut" secondAttribute="trailing" constant="20" id="HDL-zX-2dq"/>
|
||||
<constraint firstItem="9Gu-aU-Td2" firstAttribute="leading" secondItem="COE-Oc-gZs" secondAttribute="leading" constant="20" id="MwQ-M8-u18"/>
|
||||
<constraint firstItem="xGa-qG-9ut" firstAttribute="leading" secondItem="COE-Oc-gZs" secondAttribute="leading" constant="20" id="NgS-ga-iNo"/>
|
||||
<constraint firstItem="i5K-Cd-wxm" firstAttribute="top" secondItem="xGa-qG-9ut" secondAttribute="bottom" constant="20" id="R2I-Ko-ZJ9"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="siR-fL-v2a" secondAttribute="trailing" constant="20" id="Srs-vY-IQB"/>
|
||||
<constraint firstItem="9Gu-aU-Td2" firstAttribute="top" secondItem="tMg-qE-zTW" secondAttribute="bottom" constant="20" id="caN-Et-n47"/>
|
||||
<constraint firstItem="siR-fL-v2a" firstAttribute="leading" secondItem="COE-Oc-gZs" secondAttribute="leading" constant="20" id="eXs-op-WJj"/>
|
||||
<constraint firstItem="siR-fL-v2a" firstAttribute="top" secondItem="COE-Oc-gZs" secondAttribute="top" constant="20" id="iTz-r7-NFb"/>
|
||||
<constraint firstItem="i5K-Cd-wxm" firstAttribute="leading" secondItem="COE-Oc-gZs" secondAttribute="leading" constant="20" id="jWI-DQ-WdT"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="tMg-qE-zTW" secondAttribute="trailing" constant="20" id="jzw-7W-4cW"/>
|
||||
<constraint firstItem="tMg-qE-zTW" firstAttribute="leading" secondItem="COE-Oc-gZs" secondAttribute="leading" constant="20" id="qhb-hw-Gwg"/>
|
||||
<constraint firstAttribute="bottom" secondItem="i5K-Cd-wxm" secondAttribute="bottom" constant="20" id="xxz-YT-Uma"/>
|
||||
<constraint firstItem="tMg-qE-zTW" firstAttribute="top" secondItem="siR-fL-v2a" secondAttribute="bottom" constant="20" id="zis-v1-6aZ"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="lowerContrast" destination="i5K-Cd-wxm" id="sE8-Ra-JSn"/>
|
||||
<outlet property="showContrastSlider" destination="xGa-qG-9ut" id="AzL-sx-Z8Q"/>
|
||||
<outlet property="startAtLogin" destination="9Gu-aU-Td2" id="Tyx-Ub-Cyf"/>
|
||||
<outlet property="versionLabel" destination="tMg-qE-zTW" id="31N-s8-URL"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="JDw-du-OST" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="162" y="218"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
40
MonitorControl/UI/Base.lproj/MainMenu.xib
Normal file
40
MonitorControl/UI/Base.lproj/MainMenu.xib
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<?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">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="MonitorControl" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="statusMenu" destination="lCi-vw-mwp" id="iBf-iw-RcA"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||
<menu id="lCi-vw-mwp">
|
||||
<items>
|
||||
<menuItem isSeparatorItem="YES" id="F5R-GH-0ZO"/>
|
||||
<menuItem title="Preferences..." id="SOS-eZ-uU5">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="prefsClicked:" target="Voe-Tx-rLC" id="sSU-RG-py2"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Quit" id="JTa-2I-AsI">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="quitClicked:" target="Voe-Tx-rLC" id="6Y0-el-CJx"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
<point key="canvasLocation" x="-1180" y="-1189"/>
|
||||
</menu>
|
||||
</objects>
|
||||
</document>
|
||||
29
MonitorControl/UI/ButtonCellView.swift
Normal file
29
MonitorControl/UI/ButtonCellView.swift
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
import Cocoa
|
||||
import os.log
|
||||
|
||||
class ButtonCellView: NSTableCellView {
|
||||
@IBOutlet var button: NSButton!
|
||||
var display: Display?
|
||||
let prefs = UserDefaults.standard
|
||||
|
||||
override func draw(_ dirtyRect: NSRect) {
|
||||
super.draw(dirtyRect)
|
||||
}
|
||||
|
||||
@IBAction func buttonToggled(_ sender: NSButton) {
|
||||
if let display = display {
|
||||
switch sender.state {
|
||||
case .on:
|
||||
self.prefs.set(true, forKey: "\(display.identifier)-state")
|
||||
case .off:
|
||||
self.prefs.set(false, forKey: "\(display.identifier)-state")
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
os_log("Toggle enabled display state: %@", type: .info, sender.state == .on ? "on" : "off")
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
29
MonitorControl/UI/SliderHandler.swift
Normal file
29
MonitorControl/UI/SliderHandler.swift
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
import Cocoa
|
||||
import DDC
|
||||
|
||||
class SliderHandler {
|
||||
var slider: NSSlider?
|
||||
var display: Display
|
||||
let cmd: DDC.Command
|
||||
|
||||
public init(display: Display, command: DDC.Command) {
|
||||
self.display = display
|
||||
self.cmd = command
|
||||
}
|
||||
|
||||
@objc func valueChanged(slider: NSSlider) {
|
||||
let snapInterval = 25
|
||||
let snapThreshold = 3
|
||||
|
||||
var value = slider.integerValue
|
||||
|
||||
let closest = (value + snapInterval / 2) / snapInterval * snapInterval
|
||||
if abs(closest - value) <= snapThreshold {
|
||||
value = closest
|
||||
slider.integerValue = value
|
||||
}
|
||||
|
||||
_ = self.display.ddc?.write(command: self.cmd, value: UInt8(value))
|
||||
self.display.saveValue(value, for: self.cmd)
|
||||
}
|
||||
}
|
||||
48
MonitorControl/UI/de.lproj/Main.strings
Normal file
48
MonitorControl/UI/de.lproj/Main.strings
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
|
||||
/* Class = "NSButtonCell"; title = "Change Brightness/Volume for all screens"; ObjectID = "0Z7-PQ-Bl8"; */
|
||||
"0Z7-PQ-Bl8.title" = "Helligkeit/Lautstärke für alle Monitore ändern";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "8U8-ec-Zbv"; */
|
||||
"8U8-ec-Zbv.headerCell.title" = "Aktiv";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Name"; ObjectID = "CHc-s5-4MN"; */
|
||||
"CHc-s5-4MN.headerCell.title" = "Name";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Keys"; ObjectID = "Dcz-GG-1li"; */
|
||||
"Dcz-GG-1li.title" = "Tasten";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "General"; ObjectID = "ENU-js-huy"; */
|
||||
"ENU-js-huy.title" = "Allgemein";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Display"; ObjectID = "ExD-7P-6XI"; */
|
||||
"ExD-7P-6XI.title" = "Monitor";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Volume only"; ObjectID = "NLP-dU-Dam"; */
|
||||
"NLP-dU-Dam.title" = "Lautstärke";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Listen for"; ObjectID = "Vh8-06-U3K"; */
|
||||
"Vh8-06-U3K.title" = "Hören auf";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Both Brightness & Volume"; ObjectID = "Vr4-xb-B4o"; */
|
||||
"Vr4-xb-B4o.title" = "Helligkeit & Lautstärke";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "aSw-3H-uNa"; */
|
||||
"aSw-3H-uNa.title" = "Table View Cell";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Table View Cell"; ObjectID = "cnb-Li-1lE"; */
|
||||
"cnb-Li-1lE.title" = "Table View Cell";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Id"; ObjectID = "dgp-q7-cBK"; */
|
||||
"dgp-q7-cBK.headerCell.title" = "ID";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Lower Contrast after Brightness"; ObjectID = "fhy-Er-0aI"; */
|
||||
"fhy-Er-0aI.title" = "Lower Contrast after Brightness";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Brightness only"; ObjectID = "hjz-0c-rvK"; */
|
||||
"hjz-0c-rvK.title" = "Helligkeit";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Start MonitorControl at Login"; ObjectID = "j72-NF-zsW"; */
|
||||
"j72-NF-zsW.title" = "MonitorControl beim Login starten";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Show a slider for contrast"; ObjectID = "xSI-8W-Xd0"; */
|
||||
"xSI-8W-Xd0.title" = "Slider für Kontrast anzeigen";
|
||||
6
MonitorControl/UI/de.lproj/MainMenu.strings
Normal file
6
MonitorControl/UI/de.lproj/MainMenu.strings
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
/* Class = "NSMenuItem"; title = "Quit"; ObjectID = "JTa-2I-AsI"; */
|
||||
"JTa-2I-AsI.title" = "MonitorControl beenden";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "SOS-eZ-uU5"; */
|
||||
"SOS-eZ-uU5.title" = "Einstellungen …";
|
||||
49
MonitorControl/UI/en.lproj/Main.strings
Normal file
49
MonitorControl/UI/en.lproj/Main.strings
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
/* Class = "NSButtonCell"; title = "Change Brightness/Volume for all screens"; ObjectID = "0Z7-PQ-Bl8"; */
|
||||
"0Z7-PQ-Bl8.title" = "Change Brightness/Volume for all screens";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "8U8-ec-Zbv"; */
|
||||
"8U8-ec-Zbv.headerCell.title" = "Enabled";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Name"; ObjectID = "CHc-s5-4MN"; */
|
||||
"CHc-s5-4MN.headerCell.title" = "Display Name";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Keys"; ObjectID = "Dcz-GG-1li"; */
|
||||
"Dcz-GG-1li.title" = "Keys";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Display"; ObjectID = "ExD-7P-6XI"; */
|
||||
"ExD-7P-6XI.title" = "Display";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Volume only"; ObjectID = "NLP-dU-Dam"; */
|
||||
"NLP-dU-Dam.title" = "Volume only";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Check for updates automatically"; ObjectID = "SCJ-AY-phi"; */
|
||||
"SCJ-AY-phi.title" = "Check for updates automatically";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Start MonitorControl at Login"; ObjectID = "UTh-SV-vAQ"; */
|
||||
"UTh-SV-vAQ.title" = "Start MonitorControl at Login";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Listen for"; ObjectID = "Vh8-06-U3K"; */
|
||||
"Vh8-06-U3K.title" = "Listen for";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Check for updates"; ObjectID = "Vi8-Ye-W28"; */
|
||||
"Vi8-Ye-W28.title" = "Check for updates";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Both Brightness & Volume"; ObjectID = "Vr4-xb-B4o"; */
|
||||
"Vr4-xb-B4o.title" = "Both Brightness & Volume";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Start when plugged to an external monitor"; ObjectID = "WJp-aA-2Af"; */
|
||||
"WJp-aA-2Af.title" = "Start when plugged to an external monitor";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Id"; ObjectID = "dgp-q7-cBK"; */
|
||||
"dgp-q7-cBK.headerCell.title" = "Display Id";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Brightness only"; ObjectID = "hjz-0c-rvK"; */
|
||||
"hjz-0c-rvK.title" = "Brightness only";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "General"; ObjectID = "ocE-Cc-2bi"; */
|
||||
"ocE-Cc-2bi.title" = "General";
|
||||
|
||||
"8cS-Fg-fKy.title" = "Show a slider for contrast";
|
||||
|
||||
"JDl-l4-s8k.title" = "Lower Contrast after Brightness";
|
||||
6
MonitorControl/UI/en.lproj/MainMenu.strings
Normal file
6
MonitorControl/UI/en.lproj/MainMenu.strings
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
/* Class = "NSMenuItem"; title = "Quit"; ObjectID = "JTa-2I-AsI"; */
|
||||
"JTa-2I-AsI.title" = "Quit";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "SOS-eZ-uU5"; */
|
||||
"SOS-eZ-uU5.title" = "Preferences...";
|
||||
49
MonitorControl/UI/fr.lproj/Main.strings
Normal file
49
MonitorControl/UI/fr.lproj/Main.strings
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
/* Class = "NSButtonCell"; title = "Change Brightness/Volume for all screens"; ObjectID = "0Z7-PQ-Bl8"; */
|
||||
"0Z7-PQ-Bl8.title" = "Modifier Luminosité/Volume pour tout les écrans";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "8U8-ec-Zbv"; */
|
||||
"8U8-ec-Zbv.headerCell.title" = "Activé";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Name"; ObjectID = "CHc-s5-4MN"; */
|
||||
"CHc-s5-4MN.headerCell.title" = "Nom de l'écran";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Keys"; ObjectID = "Dcz-GG-1li"; */
|
||||
"Dcz-GG-1li.title" = "Touches";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Display"; ObjectID = "ExD-7P-6XI"; */
|
||||
"ExD-7P-6XI.title" = "Écrans";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Volume only"; ObjectID = "NLP-dU-Dam"; */
|
||||
"NLP-dU-Dam.title" = "Volume uniquement";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Check for updates automatically"; ObjectID = "SCJ-AY-phi"; */
|
||||
"SCJ-AY-phi.title" = "Vérifier les màj automatiquement";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Start MonitorControl at Login"; ObjectID = "UTh-SV-vAQ"; */
|
||||
"UTh-SV-vAQ.title" = "Lancer MonitorControl au démarrage";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Listen for"; ObjectID = "Vh8-06-U3K"; */
|
||||
"Vh8-06-U3K.title" = "Écouter pour";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Check for updates"; ObjectID = "Vi8-Ye-W28"; */
|
||||
"Vi8-Ye-W28.title" = "Vérifier les mis à jour";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Both Brightness & Volume"; ObjectID = "Vr4-xb-B4o"; */
|
||||
"Vr4-xb-B4o.title" = "Luminosité & Volume";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Start when plugged to an external monitor"; ObjectID = "WJp-aA-2Af"; */
|
||||
"WJp-aA-2Af.title" = "Lancer quand branché à un écran externe";
|
||||
|
||||
/* Class = "NSTableColumn"; headerCell.title = "Display Id"; ObjectID = "dgp-q7-cBK"; */
|
||||
"dgp-q7-cBK.headerCell.title" = "Identifiant";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Brightness only"; ObjectID = "hjz-0c-rvK"; */
|
||||
"hjz-0c-rvK.title" = "Luminosité uniquement";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "General"; ObjectID = "ocE-Cc-2bi"; */
|
||||
"ocE-Cc-2bi.title" = "Général";
|
||||
|
||||
"8cS-Fg-fKy.title" = "Afficher un slider pour le contraste";
|
||||
|
||||
"JDl-l4-s8k.title" = "Diminuer le contraste après la luminosité";
|
||||
6
MonitorControl/UI/fr.lproj/MainMenu.strings
Normal file
6
MonitorControl/UI/fr.lproj/MainMenu.strings
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
/* Class = "NSMenuItem"; title = "Quit"; ObjectID = "JTa-2I-AsI"; */
|
||||
"JTa-2I-AsI.title" = "Quitter";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "SOS-eZ-uU5"; */
|
||||
"SOS-eZ-uU5.title" = "Préférences...";
|
||||
Loading…
Add table
Add a link
Reference in a new issue