source: launchers/macosx/I2PLauncher/Base.lproj/UserInterfaces.xib @ 7615b92

Last change on this file since 7615b92 was 7615b92, checked in by meeh <meeh@…>, 2 years ago

Adding all new code, removed a lot obsolete code and fixed import paths etc.
Mac OS X launcher:

  • UI built on Swift
    • Why?
      • Apple seems to on purpose make it harder to get into Objective-C these days
      • Swift is compiled to native code, but has easiness of Javascript in programming
      • Perfect for the OS X UI, many guides & tutorials as well
  • "Backend" in Objective-C++ / C++14
    • Why?
      • Originally written in Objective-C / C++14 with C++17 backports
      • Only for backend because of the time the development takes *

Short summary of features:

  • Java
    • It can detect java from:
      • JAVA_HOME environment variable
      • "Internet Plug-Ins" Apple stuff
      • By the /usr/libexec/java_home binary helper
    • It can unpack a new version of I2P
      • Unpacks to ~/Library/I2P
      • Can check currently unpacked version in ~/Library/I2P via i2p.jar's "net.i2p.CoreVersion?"
  • User Interface (a popover, see for example of this concept)
    • Router control tab view
      • It can start the router
      • It can stop the router
      • It can detect already running router, then avoid fireing up one
      • It can show basic information about the router state & version
    • Log view tab (not yet done)
  • While left-click triggers popover, right-click draws a minimal context menu
  • Property mode set to 100644
File size: 2.1 KB
1<?xml version="1.0" encoding="UTF-8"?>
2<document type="" version="3.0" toolsVersion="14113" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
3    <dependencies>
4        <plugIn identifier="" version="14113"/>
5    </dependencies>
6    <objects>
7        <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
8            <connections>
9                <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
10            </connections>
11        </customObject>
12        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
13        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
14        <customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
15        <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
16        <menu id="TTS-U7-WkT" userLabel="statusBarContextMenu">
17            <items>
18                <menuItem title="Open Console" id="cOe-UL-1TW">
19                    <modifierMask key="keyEquivalentModifierMask"/>
20                    <connections>
21                        <action selector="openConsoleClicked:" target="-1" id="uR3-lb-ikG"/>
22                    </connections>
23                </menuItem>
24                <menuItem title="Start I2P Router" id="RQ8-Q2-68A">
25                    <modifierMask key="keyEquivalentModifierMask"/>
26                    <connections>
27                        <action selector="startRouterClicked:" target="-1" id="Vl3-cC-77e"/>
28                    </connections>
29                </menuItem>
30                <menuItem title="Exit" id="hsL-CH-m3C">
31                    <modifierMask key="keyEquivalentModifierMask"/>
32                    <connections>
33                        <action selector="quickClicked:" target="-1" id="hiW-5d-nBX"/>
34                    </connections>
35                </menuItem>
36            </items>
37            <point key="canvasLocation" x="17" y="167"/>
38        </menu>
39    </objects>
Note: See TracBrowser for help on using the repository browser.