(Bundle description) |
(Explanation on how layers work) |
||
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.'' | ''Add instructions about writing code and creating glyphs.'' | ||
== Secondary action == | == Secondary action == | ||
Line 67: | Line 67: | ||
|} | |} | ||
<code> | <code>layers</code> array can contain dictionaries with the following keys: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 98: | Line 98: | ||
| color || string || Hex color for current layer. || "#000000" to "#ffffff" || "#000000" || ''type'' = "glyph" && ''filename'' = nil | | color || string || Hex color for current layer. || "#000000" to "#ffffff" || "#000000" || ''type'' = "glyph" && ''filename'' = nil | ||
|} | |} | ||
<code>layers</code> are applied to the button one over the other. | |||
If <code>type</code> is "image", the current layer will draw the image found in <code>filename</code>. Best use of this layer could be as a background. | |||
If <code>type</code> is "glyph", the current layer will use the switch glyph as a mask. When <code>state</code> is present, the <code>layer</code> will select the glyph for said state. If <code>cutout</code> is true, the layer will be composed of only the glyph's borders. | |||
It is possible to use a <code>layer</code> for each state by creating new <code>layers</code> arrays named <code>layers-on</code>, <code>layers-off</code> or <code>layers-indeterminate</code>. | |||
''For more information, see [https://github.com/a3tweaks/Flipswitch/blob/master/FSSwitchPanel.m#L307 here]'' | ''For more information, see [https://github.com/a3tweaks/Flipswitch/blob/master/FSSwitchPanel.m#L307 here]'' |
Revision as of 04:53, 18 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 and creating glyphs.
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 here