Flipswitch: Difference between revisions

From iPhone Development Wiki
No edit summary
(Glyph explanation)
Line 10: Line 10:
Save [https://github.com/a3tweaks/Flipswitch/raw/master/NIC%20Template/iphone_flipswitch_switch.nic.tar this NIC template] to the <code>$THEOS/templates/iphone</code> directory and call <code>$THEOS/bin/nic.pl</code> to get a premade switch.
Save [https://github.com/a3tweaks/Flipswitch/raw/master/NIC%20Template/iphone_flipswitch_switch.nic.tar this NIC template] to the <code>$THEOS/templates/iphone</code> directory and call <code>$THEOS/bin/nic.pl</code> to get a premade switch.


''Add instructions about writing code and creating glyphs.''
''Add instructions about writing code.''
 
=== Glyphs ===
 
Glyphs are the visual part of the switch that should represent your switch's state. To create one, you have to create at least two icons (one for <code>on</code> state and one for <code>off</code> state) as black vector images with transparent background. Then, save those vector images as PDF and name them <code>glyph.pdf</code> for the <code>on</code> state and <code>glyph-off.pdf</code> for the <code>off</code> state. You should then move these PDFs to your <code>Resources</code> folder, where an <code>Info.plist</code> file resides.
 


== Secondary action ==
== Secondary action ==

Revision as of 23:25, 25 January 2014

Flipswitch
Cydia Package
Developer Ryan Petrich, Jack Willis
Package ID libflipswitch
Latest Version 1.0.2


libflipswitch is a library used to implement a centralized toggle system.

How to make a new switch

Save this NIC template to the $THEOS/templates/iphone directory and call $THEOS/bin/nic.pl to get a premade switch.

Add instructions about writing code.

Glyphs

Glyphs are the visual part of the switch that should represent your switch's state. To create one, you have to create at least two icons (one for on state and one for off state) as black vector images with transparent background. Then, save those vector images as PDF and name them glyph.pdf for the on state and glyph-off.pdf for the off state. You should then move these PDFs to your Resources folder, where an Info.plist file resides.


Secondary action

In the file Resources/Info.plist you can find the key "alternate-action-url", which will enable you to open a URI when the secondary action of the switch is invoked, in case it is not implemented in code. The default value is "prefs:".

How to make a template bundle

These bundles contain information about how a switch glyph (the image that the user sees for a given switch) is rendered when it is used in a button returned by the appropriate method of the FlipSwitch panel. Bundles contain an Info.plist file and optionally image files. Here is an example of an Info.plist, taken from SwitchIcons:

<?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>CFBundleDevelopmentRegion</key>
        <string>English</string>
        <key>CFBundleIdentifier</key>
        <string>com.rpetrich.switchicon.icon-template</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0.0</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
        <string>1.0</string>
        <key>DTPlatformName</key>
        <string>iphoneos</string>
        <key>MinimumOSVersion</key>
        <string>2.0</string>
        <key>width</key>
        <integer>59</integer>
        <key>height</key>
        <integer>60</integer>
        <key>layers</key>
        <array>
            <...>
        </array>
</dict>
</plist>

Keys not specified in the following table can use the same values as the example given.

key type meaning
CFBundleIdentifier string Template bundle identifier.
width integer Width of the icon.
height integer Height of the icon.
layers array ... of dictionaries Change visuals of switch glyph.

layers array can contain dictionaries with the following keys:

key type meaning range of values default value depends
type string Layer type. "image", "glyph" - -
opacity float Alpha value for current layer. 0.0 to 1.0 1.0 -
x float X value for offset position. - 0.0 -
y float Y value for offset position. - 0.0 -
fileName string Image filename without extension. - - -
blur float Blur value for current layer. 0.0 to 1.0 0.0 type = "glyph"
size float Glyph size. - 0 type = "glyph"
state string Switch state filter. "on", "off", "indeterminate" - type = "glyph"
cutout BOOL Cutout mask flag. - NO type = "glyph"
cutoutX float X offset for cutout mask. - 0.0 type = "glyph" && cutout = YES
cutoutY float Y offset for cutout mask. - 0.0 type = "glyph" && cutout = YES
cutoutBlur float Blur for cutout mask. 0.0 to 1.0 0.0 type = "glyph" && cutout = YES
color string Hex color for current layer. "#000000" to "#ffffff" "#000000" type = "glyph" && filename = nil

layers are applied to the button one over the other. If type is "image", the current layer will draw the image found in filename. Best use of this layer could be as a background. If type is "glyph", the current layer will use the switch glyph as a mask. When state is present, the layer will select the glyph for said state. If cutout is true, the layer will be composed of only the glyph's borders.

It is possible to use a layer for each state by creating new layers arrays named layers-on, layers-off or layers-indeterminate.

For more information, see this resource

External links