mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-05-28 00:21:57 +02:00
Compare commits
50 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ec66d3833 | |||
| fde7641622 | |||
| 5fa7ca57b3 | |||
| 42c9cfa7f4 | |||
| 08b270a8a4 | |||
| 336bd622c3 | |||
| 72defda84e | |||
| a99b90437a | |||
| d82103ed85 | |||
| b0967d587f | |||
| d0232917ce | |||
| 43a34f9f74 | |||
| 4119cf80e1 | |||
| 2db5c3b3ce | |||
| f60b796fa9 | |||
| 8c600052fa | |||
| 4cf7679383 | |||
| 58adb14739 | |||
| da440d21a6 | |||
| f1add63bf6 | |||
| b73174039d | |||
| a1e013d9df | |||
| c66ee271ee | |||
| 286eacd3f6 | |||
| 9bbf63dbf8 | |||
| 4e640bd930 | |||
| d125001297 | |||
| f1f60f859c | |||
| e39b3d9fb4 | |||
| abfa9efb98 | |||
| 36d7cd8965 | |||
| b7604cc19f | |||
| 345efa013d | |||
| 065ee9aebf | |||
| a260b87d9d | |||
| 3d6d5cc3a4 | |||
| 5a46a58eb6 | |||
| ccb80989f2 | |||
| 24c4d539ee | |||
| a803c7f940 | |||
| b01f357791 | |||
| 944363144a | |||
| 7cdd910164 | |||
| 24d55e3b5f | |||
| 8015cac16f | |||
| e268fb8d67 | |||
| 2791ea7877 | |||
| b5690794cf | |||
| 1738058e27 | |||
| da22ab4d96 |
+1
-1
@@ -43,7 +43,7 @@ deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: HYHKVbuSG2Trc5zEN+aQO0TO/020qtTokoaaatd9GhQ/ImOI2uhOuVsk47mcViCINyE9+wwVEr23Tk7GqzsJBS66FoZJeOsgYoO/LFlQjCYyya+48Ajez6I2VAIGKn0JD6jpW+ZYIX7MAWLCQKv/vW03MrBMDLZvjB89pHe72MLQFlVcEzxsWnr7smTzLcuKShkV+AVZopE/HRdY1k/zjWf/TzcJgqXwThuJOPYY+CcGUv1CMJjWB8pBuH31pbQ2AVOXV7VG5oxy2HSbCeDRShKT3GooecWj7xjh9SApNqEIzC44RlufgyC73M0DeILUasmbF0g2Q+AsDaj3+9w3LbLbmfpV5kEM9E/PbzWEn+0EgRKV+HCscZnPMlzkiVWKnjzfwKGMOmTwD0aN4Bt6Y9z+UvQKfsQN+6wHmh7xcSpaeR1J6PBeaCd+QyhD7t9ZxP2qmZWCBMFpnkqO4+LoclJNV+IxYstNFjaKIvxEe/S9GM2w+i2cSDDrxSNz+kUGWzshyu6HXxRtrNo+qM6sCO8TiOMMALPAkLCJT2P/TPMRkdy2wjCDwprc1ePDqikIHIGGwQ8Csd5IqFUcJs405xw4HfVkOuhWL/SpLuI6OHOVQqAkqMEMaEhlfh1swFNkT4ffDJGzvklB8v2980B003eWbcHr6lMGtpqQecqgS9A=
|
||||
file: src/MacVim/build/Release/MacVim-7.4.dmg
|
||||
file: src/MacVim/build/Release/MacVim.dmg
|
||||
skip_cleanup: true
|
||||
on:
|
||||
all_branches: true
|
||||
|
||||
@@ -351,7 +351,6 @@ SRC_DOS = \
|
||||
src/xpm_w32.h \
|
||||
src/xxd/Make_bc3.mak \
|
||||
src/xxd/Make_bc5.mak \
|
||||
src/xxd/Make_cyg.mak \
|
||||
src/xxd/Make_djg.mak \
|
||||
src/xxd/Make_ming.mak \
|
||||
src/xxd/Make_mvc.mak \
|
||||
|
||||
@@ -131,6 +131,9 @@ MINOR = 4
|
||||
#
|
||||
# MS-Windows:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - Get libintl-8.dll and libiconv-2.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Put them in the top directory, "make dosrt" uses them.
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||
@@ -493,7 +496,8 @@ dosrt_files: dist prepare no_title.vim
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
||||
|
||||
|
||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||
|
||||
+14
-8
@@ -6,13 +6,19 @@
|
||||
# because uninstall deletes most files in $0.
|
||||
|
||||
# Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
|
||||
!define VIMSRC "..\src"
|
||||
!ifndef VIMSRC
|
||||
!define VIMSRC "..\src"
|
||||
!endif
|
||||
|
||||
# Location of runtime files
|
||||
!define VIMRT ".."
|
||||
!ifndef VIMRT
|
||||
!define VIMRT ".."
|
||||
!endif
|
||||
|
||||
# Location of extra tools: diff.exe
|
||||
!define VIMTOOLS ..\..
|
||||
!ifndef VIMTOOLS
|
||||
!define VIMTOOLS ..\..
|
||||
!endif
|
||||
|
||||
# Comment the next line if you don't have UPX.
|
||||
# Get it at http://upx.sourceforge.net
|
||||
@@ -32,9 +38,10 @@
|
||||
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
|
||||
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
||||
CRCCheck force
|
||||
SetCompressor lzma
|
||||
SetCompressor /SOLID lzma
|
||||
SetDatablockOptimize on
|
||||
RequestExecutionLevel highest
|
||||
XPStyle on
|
||||
|
||||
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
|
||||
DirText "Choose a directory to install Vim (should contain 'vim')"
|
||||
@@ -55,9 +62,6 @@ LicenseData ${VIMRT}\doc\uganda.nsis.txt
|
||||
!packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
|
||||
!endif
|
||||
|
||||
SetCompressor /SOLID lzma
|
||||
XPStyle on
|
||||
|
||||
# This adds '\vim' to the user choice automagically. The actual value is
|
||||
# obtained below with ReadINIStr.
|
||||
InstallDir "$PROGRAMFILES\Vim"
|
||||
@@ -355,7 +359,9 @@ SectionEnd
|
||||
File ${VIMRT}\keymap\README.txt
|
||||
File ${VIMRT}\keymap\*.vim
|
||||
SetOutPath $0
|
||||
File ${VIMRT}\libintl.dll
|
||||
File ${VIMRT}\libintl-8.dll
|
||||
File ${VIMRT}\libiconv-2.dll
|
||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
|
||||
+51
-16
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.4. Last change: 2016 Jan 09
|
||||
*eval.txt* For Vim version 7.4. Last change: 2016 Jan 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -919,6 +919,11 @@ just above, except that indexes out of range cause an error. Examples: >
|
||||
Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an
|
||||
error.
|
||||
|
||||
Watch out for confusion between a namespace and a variable followed by a colon
|
||||
for a sublist: >
|
||||
mylist[n:] " uses variable n
|
||||
mylist[s:] " uses namespace s:, error!
|
||||
|
||||
|
||||
expr8.name entry in a |Dictionary| *expr-entry*
|
||||
|
||||
@@ -1750,9 +1755,11 @@ arglistid( [{winnr} [, {tabnr}]])
|
||||
Number argument list id
|
||||
argv( {nr}) String {nr} entry of the argument list
|
||||
argv( ) List the argument list
|
||||
assert_equal( {exp}, {act} [, {msg}]) none assert that {exp} equals {act}
|
||||
assert_false( {actual} [, {msg}]) none assert that {actual} is false
|
||||
assert_true( {actual} [, {msg}]) none assert that {actual} is true
|
||||
assert_equal( {exp}, {act} [, {msg}]) none assert {exp} equals {act}
|
||||
assert_exception({error} [, {msg}]) none assert {error} is in v:exception
|
||||
assert_fails( {cmd} [, {error}]) none assert {cmd} fails
|
||||
assert_false( {actual} [, {msg}]) none assert {actual} is false
|
||||
assert_true( {actual} [, {msg}]) none assert {actual} is true
|
||||
asin( {expr}) Float arc sine of {expr}
|
||||
atan( {expr}) Float arc tangent of {expr}
|
||||
atan2( {expr}, {expr}) Float arc tangent of {expr1} / {expr2}
|
||||
@@ -1792,7 +1799,7 @@ cursor( {lnum}, {col} [, {off}])
|
||||
Number move cursor to {lnum}, {col}, {off}
|
||||
cursor( {list}) Number move cursor to position in {list}
|
||||
deepcopy( {expr} [, {noref}]) any make a full copy of {expr}
|
||||
delete( {fname}) Number delete file {fname}
|
||||
delete( {fname} [, {flags}]) Number delete the file or directory {fname}
|
||||
did_filetype() Number TRUE if FileType autocommand event used
|
||||
diff_filler( {lnum}) Number diff filler lines about {lnum}
|
||||
diff_hlID( {lnum}, {col}) Number diff highlighting at {lnum}/{col}
|
||||
@@ -2179,7 +2186,7 @@ argv([{nr}]) The result is the {nr}th file in the argument list of the
|
||||
returned.
|
||||
|
||||
*assert_equal()*
|
||||
assert_equal({expected}, {actual}, [, {msg}])
|
||||
assert_equal({expected}, {actual} [, {msg}])
|
||||
When {expected} and {actual} are not equal an error message is
|
||||
added to |v:errors|.
|
||||
There is no automatic conversion, the String "4" is different
|
||||
@@ -2193,18 +2200,36 @@ assert_equal({expected}, {actual}, [, {msg}])
|
||||
< Will result in a string to be added to |v:errors|:
|
||||
test.vim line 12: Expected 'foo' but got 'bar' ~
|
||||
|
||||
assert_false({actual}, [, {msg}]) *assert_false()*
|
||||
assert_exception({error} [, {msg}]) *assert_exception()*
|
||||
When v:exception does not contain the string {error} an error
|
||||
message is added to |v:errors|.
|
||||
This can be used to assert that a command throws an exception.
|
||||
Using the error number, followed by a colon, avoids problems
|
||||
with translations: >
|
||||
try
|
||||
commandthatfails
|
||||
call assert_false(1, 'command should have failed')
|
||||
catch
|
||||
call assert_exception('E492:')
|
||||
endtry
|
||||
|
||||
assert_fails({cmd} [, {error}]) *assert_fails()*
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce an error.
|
||||
When {error} is given it must match |v:errmsg|.
|
||||
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
When {actual} is not false an error message is added to
|
||||
|v:errors|, like with |assert_equal()|..
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
A value is false when it is zero. When "{actual}" is not a
|
||||
number the assert fails.
|
||||
When {msg} is omitted an error in the form "Expected False but
|
||||
got {actual}" is produced.
|
||||
|
||||
assert_true({actual}, [, {msg}]) *assert_true()*
|
||||
assert_true({actual} [, {msg}]) *assert_true()*
|
||||
When {actual} is not true an error message is added to
|
||||
|v:errors|, like with |assert_equal()|..
|
||||
A value is true when it is a non-zeron number. When {actual}
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
A value is true when it is a non-zero number. When {actual}
|
||||
is not a number the assert fails.
|
||||
When {msg} is omitted an error in the form "Expected True but
|
||||
got {actual}" is produced.
|
||||
@@ -2728,10 +2753,20 @@ deepcopy({expr}[, {noref}]) *deepcopy()* *E698*
|
||||
{noref} set to 1 will fail.
|
||||
Also see |copy()|.
|
||||
|
||||
delete({fname}) *delete()*
|
||||
Deletes the file by the name {fname}. The result is a Number,
|
||||
which is 0 if the file was deleted successfully, and non-zero
|
||||
when the deletion failed.
|
||||
delete({fname} [, {flags}]) *delete()*
|
||||
Without {flags} or with {flags} empty: Deletes the file by the
|
||||
name {fname}. This also works when {fname} is a symbolic link.
|
||||
|
||||
When {flags} is "d": Deletes the directory by the name
|
||||
{fname}. This fails when directory {fname} is not empty.
|
||||
|
||||
When {flags} is "rf": Deletes the directory by the name
|
||||
{fname} and everything in it, recursively. BE CAREFUL!
|
||||
A symbolic link itself is deleted, not what it points to.
|
||||
|
||||
The result is a Number, which is 0 if the delete operation was
|
||||
successful and -1 when the deletion failed or partly failed.
|
||||
|
||||
Use |remove()| to delete an item from a |List|.
|
||||
To delete a line from the buffer use |:delete|. Use |:exe|
|
||||
when the line number is in a variable.
|
||||
@@ -3477,7 +3512,7 @@ getcmdwintype() *getcmdwintype()*
|
||||
*getcurpos()*
|
||||
getcurpos() Get the position of the cursor. This is like getpos('.'), but
|
||||
includes an extra item in the list:
|
||||
[bufnum, lnum, col, off, curswant]
|
||||
[bufnum, lnum, col, off, curswant] ~
|
||||
The "curswant" number is the preferred column when moving the
|
||||
cursor vertically.
|
||||
This can be used to save and restore the cursor position: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 7.4. Last change: 2016 Jan 09
|
||||
*help.txt* For Vim version 7.4. Last change: 2016 Jan 10
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@@ -10,14 +10,14 @@ Close this window: Use ":q<Enter>".
|
||||
Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
|
||||
With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI).
|
||||
Double-click the left mouse button on a tag, e.g. |bars|.
|
||||
Jump back: Type CTRL-T or CTRL-O (repeat to go further back).
|
||||
Jump back: Type CTRL-T or CTRL-O. Repeat to go further back.
|
||||
|
||||
Get specific help: It is possible to go directly to whatever you want help
|
||||
on, by giving an argument to the |:help| command.
|
||||
It is possible to further specify the context:
|
||||
*help-context*
|
||||
Prepend something to specify the context: *help-context*
|
||||
|
||||
WHAT PREPEND EXAMPLE ~
|
||||
Normal mode command (nothing) :help x
|
||||
Normal mode command :help x
|
||||
Visual mode command v_ :help v_u
|
||||
Insert mode command i_ :help i_<Esc>
|
||||
Command-line command : :help :quit
|
||||
@@ -25,7 +25,7 @@ Get specific help: It is possible to go directly to whatever you want help
|
||||
Vim command argument - :help -r
|
||||
Option ' :help 'textwidth'
|
||||
Regular expression / :help /[
|
||||
Also see |help-summary| for a verbose explanation.
|
||||
See |help-summary| for more contexts and an explanation.
|
||||
|
||||
Search for help: Type ":help word", then hit CTRL-D to see matching
|
||||
help entries for "word".
|
||||
|
||||
@@ -13,6 +13,7 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
|
||||
5. mzeval() Vim function |mzscheme-mzeval|
|
||||
6. Using Function references |mzscheme-funcref|
|
||||
7. Dynamic loading |mzscheme-dynamic|
|
||||
8. MzScheme setup |mzscheme-setup|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
|
||||
@@ -272,6 +273,9 @@ output then includes |+mzscheme/dyn|.
|
||||
This means that Vim will search for the MzScheme DLL files only when needed.
|
||||
When you don't use the MzScheme interface you don't need them, thus you can
|
||||
use Vim without these DLL files.
|
||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||
startup if possible.
|
||||
|
||||
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
||||
In a console window type "path" to see what directories are used.
|
||||
@@ -282,5 +286,24 @@ For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.
|
||||
|
||||
For example, if MzScheme (Racket) is installed at C:\Racket63, you may need
|
||||
to set the environment variable as the following: >
|
||||
|
||||
PATH=%PATH%;C:\Racket63\lib
|
||||
PLTCOLLECTS=C:\Racket63\collects
|
||||
PLTCONFIGDIR=C:\Racket63\etc
|
||||
<
|
||||
==============================================================================
|
||||
8. MzScheme setup *mzscheme-setup*
|
||||
|
||||
Vim requires "racket/base" module for if_mzsch core (fallback to "scheme/base"
|
||||
if it doesn't exist), "r5rs" module for test and "raco ctool" command for
|
||||
building Vim. If MzScheme did not have them, you can install them with
|
||||
MzScheme's raco command:
|
||||
>
|
||||
raco pkg install scheme-lib # scheme/base module
|
||||
raco pkg install r5rs-lib # r5rs module
|
||||
raco pkg install cext-lib # raco ctool command
|
||||
<
|
||||
======================================================================
|
||||
vim:tw=78:ts=8:sts=4:ft=help:norl:
|
||||
|
||||
+8
-8
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.4. Last change: 2014 Dec 08
|
||||
*map.txt* For Vim version 7.4. Last change: 2016 Jan 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -483,7 +483,7 @@ internal code is written to the script file.
|
||||
|
||||
|
||||
1.6 SPECIAL CHARACTERS *:map-special-chars*
|
||||
*map_backslash*
|
||||
*map_backslash* *map-backslash*
|
||||
Note that only CTRL-V is mentioned here as a special character for mappings
|
||||
and abbreviations. When 'cpoptions' does not contain 'B', a backslash can
|
||||
also be used like CTRL-V. The <> notation can be fully used then |<>|. But
|
||||
@@ -494,21 +494,21 @@ To map a backslash, or use a backslash literally in the {rhs}, the special
|
||||
sequence "<Bslash>" can be used. This avoids the need to double backslashes
|
||||
when using nested mappings.
|
||||
|
||||
*map_CTRL-C*
|
||||
*map_CTRL-C* *map-CTRL-C*
|
||||
Using CTRL-C in the {lhs} is possible, but it will only work when Vim is
|
||||
waiting for a key, not when Vim is busy with something. When Vim is busy
|
||||
CTRL-C interrupts/breaks the command.
|
||||
When using the GUI version on MS-Windows CTRL-C can be mapped to allow a Copy
|
||||
command to the clipboard. Use CTRL-Break to interrupt Vim.
|
||||
|
||||
*map_space_in_lhs*
|
||||
*map_space_in_lhs* *map-space_in_lhs*
|
||||
To include a space in {lhs} precede it with a CTRL-V (type two CTRL-Vs for
|
||||
each space).
|
||||
*map_space_in_rhs*
|
||||
*map_space_in_rhs* *map-space_in_rhs*
|
||||
If you want a {rhs} that starts with a space, use "<Space>". To be fully Vi
|
||||
compatible (but unreadable) don't use the |<>| notation, precede {rhs} with a
|
||||
single CTRL-V (you have to type CTRL-V two times).
|
||||
*map_empty_rhs*
|
||||
*map_empty_rhs* *map-empty-rhs*
|
||||
You can create an empty {rhs} by typing nothing after a single CTRL-V (you
|
||||
have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc
|
||||
file.
|
||||
@@ -583,7 +583,7 @@ Upper and lowercase differences are ignored.
|
||||
It is not possible to put a comment after these commands, because the '"'
|
||||
character is considered to be part of the {lhs} or {rhs}.
|
||||
|
||||
*map_bar*
|
||||
*map_bar* *map-bar*
|
||||
Since the '|' character is used to separate a map command from the next
|
||||
command, you will have to do something special to include a '|' in {rhs}.
|
||||
There are three methods:
|
||||
@@ -601,7 +601,7 @@ When 'b' is present in 'cpoptions', "\|" will be recognized as a mapping
|
||||
ending in a '\' and then another command. This is Vi compatible, but
|
||||
illogical when compared to other commands.
|
||||
|
||||
*map_return*
|
||||
*map_return* *map-return*
|
||||
When you have a mapping that contains an Ex command, you need to put a line
|
||||
terminator after it to have it executed. The use of <CR> is recommended for
|
||||
this (see |<>|). Example: >
|
||||
|
||||
+30
-2
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2015 Apr 13
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2016 Jan 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -483,16 +483,44 @@ Additionally, these commands can be used:
|
||||
finish Finish the current script or user function and come
|
||||
back to debug mode for the command after the one that
|
||||
sourced or called it.
|
||||
*>bt*
|
||||
*>backtrace*
|
||||
*>where*
|
||||
backtrace Show the call stacktrace for current debugging session.
|
||||
bt
|
||||
where
|
||||
*>frame*
|
||||
frame N Goes to N bactrace level. + and - signs make movement
|
||||
relative. E.g., ":frame +3" goes three frames up.
|
||||
*>up*
|
||||
up Goes one level up from call stacktrace.
|
||||
*>down*
|
||||
down Goes one level down from call stacktrace.
|
||||
|
||||
About the additional commands in debug mode:
|
||||
- There is no command-line completion for them, you get the completion for the
|
||||
normal Ex commands only.
|
||||
- You can shorten them, up to a single character: "c", "n", "s" and "f".
|
||||
- You can shorten them, up to a single character, unless more then one command
|
||||
starts with the same letter. "f" stands for "finish", use "fr" for "frame".
|
||||
- Hitting <CR> will repeat the previous one. When doing another command, this
|
||||
is reset (because it's not clear what you want to repeat).
|
||||
- When you want to use the Ex command with the same name, prepend a colon:
|
||||
":cont", ":next", ":finish" (or shorter).
|
||||
|
||||
The backtrace shows the hierarchy of function calls, e.g.:
|
||||
>bt ~
|
||||
3 function One[3] ~
|
||||
2 Two[3] ~
|
||||
->1 Three[3] ~
|
||||
0 Four ~
|
||||
line 1: let four = 4 ~
|
||||
|
||||
The "->" points to the current frame. Use "up", "down" and "frame N" to
|
||||
select another frame.
|
||||
|
||||
In the current frame you can evaluate the local function variables. There is
|
||||
no way to see the command at the current line yet.
|
||||
|
||||
|
||||
DEFINING BREAKPOINTS
|
||||
*:breaka* *:breakadd*
|
||||
|
||||
@@ -4955,6 +4955,8 @@ asm.vim syntax.txt /*asm.vim*
|
||||
asm68k syntax.txt /*asm68k*
|
||||
asmh8300.vim syntax.txt /*asmh8300.vim*
|
||||
assert_equal() eval.txt /*assert_equal()*
|
||||
assert_exception() eval.txt /*assert_exception()*
|
||||
assert_fails() eval.txt /*assert_fails()*
|
||||
assert_false() eval.txt /*assert_false()*
|
||||
assert_true() eval.txt /*assert_true()*
|
||||
at motion.txt /*at*
|
||||
@@ -7014,9 +7016,13 @@ man.vim filetype.txt /*man.vim*
|
||||
manual-copyright usr_01.txt /*manual-copyright*
|
||||
map() eval.txt /*map()*
|
||||
map-<SID> map.txt /*map-<SID>*
|
||||
map-CTRL-C map.txt /*map-CTRL-C*
|
||||
map-ambiguous map.txt /*map-ambiguous*
|
||||
map-backslash map.txt /*map-backslash*
|
||||
map-backtick tips.txt /*map-backtick*
|
||||
map-bar map.txt /*map-bar*
|
||||
map-comments map.txt /*map-comments*
|
||||
map-empty-rhs map.txt /*map-empty-rhs*
|
||||
map-error map.txt /*map-error*
|
||||
map-examples map.txt /*map-examples*
|
||||
map-keys-fails map.txt /*map-keys-fails*
|
||||
@@ -7025,7 +7031,10 @@ map-modes map.txt /*map-modes*
|
||||
map-multibyte map.txt /*map-multibyte*
|
||||
map-overview map.txt /*map-overview*
|
||||
map-precedence map.txt /*map-precedence*
|
||||
map-return map.txt /*map-return*
|
||||
map-self-destroy tips.txt /*map-self-destroy*
|
||||
map-space_in_lhs map.txt /*map-space_in_lhs*
|
||||
map-space_in_rhs map.txt /*map-space_in_rhs*
|
||||
map-typing map.txt /*map-typing*
|
||||
map-which-keys map.txt /*map-which-keys*
|
||||
map.txt map.txt /*map.txt*
|
||||
|
||||
+20
-22
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2016 Jan 10
|
||||
*todo.txt* For Vim version 7.4. Last change: 2016 Jan 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,8 +34,6 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
/tmp/test_increment_new_style.patch.2
|
||||
|
||||
Regexp problems:
|
||||
- The regexp engines are not reentrant, causing havoc when interrupted by a
|
||||
remote expression or something else. Move global variables onto the stack
|
||||
@@ -78,8 +76,6 @@ Regexp problems:
|
||||
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
|
||||
- Search for \\~ causes error E874.
|
||||
|
||||
Help to build with interfaces. (Ken Takata, 2015 Jan 5)
|
||||
|
||||
Need to try out instructions in INSSTALLpc.txt about how to install all
|
||||
interfaces and how to build Vim with them.
|
||||
Appveyor build with self-installing executable, includes getting most
|
||||
@@ -101,8 +97,6 @@ Should use /usr/local/share/applications or /usr/share/applications.
|
||||
Or use $XDG_DATA_DIRS.
|
||||
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
|
||||
|
||||
Patch to update the help summary. (Christian Brabandt, 2015 Jan 10)
|
||||
|
||||
Add has('crypt-blowfish') and has('crypt-blowfish2') (Smu Johnson)
|
||||
|
||||
Access to uninitialized memory in match_backref() regexp_nda.c:4882
|
||||
@@ -123,19 +117,11 @@ Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
||||
|
||||
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
|
||||
|
||||
Patch to fix "." after CTRL-A in Visual block mode. (Ozaki Kiichi, 2015 Oct
|
||||
24)
|
||||
|
||||
Patch to have CTRL-A and CTRL-X update the '[ and '] marks.
|
||||
(Yukihiro Nakadaira, 2015 Aug 23)
|
||||
|
||||
Patch for GVimExt building with VS2015. (Mike Williams, 2015 Jan 10)
|
||||
|
||||
Unexpected delay when using CTRL-O u. It's not timeoutlen.
|
||||
(Gary Johnson, 2015 Aug 28)
|
||||
|
||||
Instead of separately uploading patches to the ftp site, can we get them from
|
||||
github? This URL works:
|
||||
Instead of separately uploading patches to the ftp site, we can get them from
|
||||
github with a URL like this:
|
||||
https://github.com/vim/vim/compare/v7.4.920%5E...v7.4.920.diff
|
||||
Diff for version.c contains more context, can't skip a patch.
|
||||
>
|
||||
@@ -148,6 +134,9 @@ set_color_count().
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Patch to fix cursor position in right-left mode with concealing.
|
||||
(Hirohito Higashi, 2016 Jan 13)
|
||||
|
||||
Plugin to use Vim in MANPAGER. Konfekt, PR #491
|
||||
|
||||
Using uninitialized memory. (Dominique Pelle, 2015 Nov 4)
|
||||
@@ -161,8 +150,16 @@ Patch to recognize string slice for variable followed by colon.
|
||||
Patch to add debug backtrace. (Alberto Fanjul, 2015 Sep 27)
|
||||
Update 2016 Jan 2. Issue #433
|
||||
|
||||
Patch to gvim.nsi for appveyor build. (Ken Takata, 2016 Jan 12)
|
||||
|
||||
Patch to improve behavior of dead keys on MS-Windows. (John Wellesz, 2015 Aug
|
||||
25) https://github.com/vim/vim/pull/399.diff
|
||||
|
||||
Patch to make mzscheme (racket) interface work. (Yukihiro Nakadaira, 2015 Jan
|
||||
10) Doesn't work for me, need to build from source.
|
||||
10) Doesn't work for me, need to build from source. Include anyway?
|
||||
Additional patch by Ken Takata, 2016 Jan 13.
|
||||
Merged patch by Yasuhiro Nakadaira,, 2016 Jan 14.
|
||||
Update for INSSTALLpc.txt by Ken Takata, Jan 14.
|
||||
|
||||
MS-Windows: When editing a file with a leading space, writing it uses the
|
||||
wrong name. (Aram, 2014 Nov 7) Vim 7.4.
|
||||
@@ -172,7 +169,7 @@ specifically? First try with the parens, then without.
|
||||
|
||||
Half-finished patch to fix the Problem using cgn to change a search hit when
|
||||
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
|
||||
2015 Dec 14, Update Dec 15.
|
||||
2016 Jan 11.
|
||||
|
||||
Patch to fix pointer cast warning in VS2015. (Mike Williams, 2015 Dec 13)
|
||||
Patch to make building GVimExt with VS2015. (Mike Williams, 2015 Dec 13)
|
||||
@@ -199,6 +196,10 @@ library: http://userguide.icu-project.org/boundaryanalysis
|
||||
When complete() first argument is before where insert started and 'backspace'
|
||||
is Vi compatible, the completion fails. (Hirohito Higashi, 2015 Feb 19)
|
||||
|
||||
Patch to fix bug in searchpair(). (Christian Brabandt, 2016 Jan 11)
|
||||
Problem reported by David Fishburn, using searchpair() with synID() used in
|
||||
the skip expression.
|
||||
|
||||
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
|
||||
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
|
||||
|
||||
@@ -339,9 +340,6 @@ When two SIGWINCH arrive very quickly, the second one may be lost.
|
||||
|
||||
Make comments in the test Makefile silent. (Kartik Agaram, 2014 Sep 24)
|
||||
|
||||
Patch to improve behavior of dead keys on MS-Windows. (John Wellesz, 2015 Aug
|
||||
25) https://github.com/vim/vim/pull/399.diff
|
||||
|
||||
Result of systemlist() does not show whether text ended in line break.
|
||||
(Bjorn Linse, 2014 Nov 27)
|
||||
|
||||
|
||||
+192
-61
@@ -1,4 +1,4 @@
|
||||
*usr_02.txt* For Vim version 7.4. Last change: 2015 Apr 12
|
||||
*usr_02.txt* For Vim version 7.4. Last change: 2016 Jan 15
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -408,7 +408,15 @@ original version of the file.
|
||||
|
||||
Everything you always wanted to know can be found in the Vim help files.
|
||||
Don't be afraid to ask!
|
||||
To get generic help use this command: >
|
||||
|
||||
If you know what you are looking for, it is usually easier to search for it
|
||||
using the help system, instead of using Google. Because the subjects follow
|
||||
a certain style guide.
|
||||
|
||||
Also the help has the advantage of belonging to your particular Vim version.
|
||||
You won't see help for commands added later. These would not work for you.
|
||||
|
||||
To get generic help use this command: >
|
||||
|
||||
:help
|
||||
|
||||
@@ -482,7 +490,7 @@ example, use the following command: >
|
||||
|
||||
:help 'number'
|
||||
|
||||
The table with all mode prefixes can be found here: |help-context|.
|
||||
The table with all mode prefixes can be found below: |help-summary|.
|
||||
|
||||
Special keys are enclosed in angle brackets. To find help on the up-arrow key
|
||||
in Insert mode, for instance, use this command: >
|
||||
@@ -499,64 +507,187 @@ You can use the error ID at the start to find help about it: >
|
||||
|
||||
|
||||
Summary: *help-summary* >
|
||||
:help
|
||||
< Gives you very general help. Scroll down to see a list of all
|
||||
helpfiles, including those added locally (i.e. not distributed
|
||||
with Vim). >
|
||||
:help user-toc.txt
|
||||
< Table of contents of the User Manual. >
|
||||
:help :subject
|
||||
< Ex-command "subject", for instance the following: >
|
||||
:help :help
|
||||
< Help on getting help. >
|
||||
:help abc
|
||||
< normal-mode command "abc". >
|
||||
:help CTRL-B
|
||||
< Control key <C-B> in Normal mode. >
|
||||
:help i_abc
|
||||
:help i_CTRL-B
|
||||
< The same in Insert mode. >
|
||||
:help v_abc
|
||||
:help v_CTRL-B
|
||||
< The same in Visual mode. >
|
||||
:help c_abc
|
||||
:help c_CTRL-B
|
||||
< The same in Command-line mode. >
|
||||
:help 'subject'
|
||||
< Option 'subject'. >
|
||||
:help subject()
|
||||
< Function "subject". >
|
||||
:help -subject
|
||||
< Command-line argument "-subject". >
|
||||
:help +subject
|
||||
< Compile-time feature "+subject". >
|
||||
:help /*
|
||||
< Regular expression item "*" >
|
||||
:help EventName
|
||||
< Autocommand event "EventName". >
|
||||
:help digraphs.txt
|
||||
< The top of the helpfile "digraph.txt".
|
||||
Similarly for any other helpfile. >
|
||||
:help pattern<Tab>
|
||||
< Find a help tag starting with "pattern". Repeat <Tab> for
|
||||
others. >
|
||||
:help pattern<Ctrl-D>
|
||||
< See all possible help tag matches "pattern" at once. >
|
||||
:helpgrep pattern
|
||||
< Search the whole text of all help files for pattern "pattern".
|
||||
Jumps to the first match. Jump to other matches with: >
|
||||
:cn
|
||||
< next match >
|
||||
:cprev
|
||||
:cN
|
||||
< previous match >
|
||||
:cfirst
|
||||
:clast
|
||||
< first or last match >
|
||||
:copen
|
||||
:cclose
|
||||
< open/close the quickfix window; press <Enter> to jump
|
||||
to the item under the cursor
|
||||
|
||||
1) Use Ctrl-D after typing a topic and let Vim show all available topics.
|
||||
Or press Tab to complete: >
|
||||
:help some<Tab>
|
||||
< More information on how to use the help: >
|
||||
:help helphelp
|
||||
|
||||
2) Follow the links in bars to related help. You can go from the detailed
|
||||
help to the user documentation, which describes certain commands more from
|
||||
a user perspective and less detailed. E.g. after: >
|
||||
:help pattern.txt
|
||||
< You can see the user guide topics |03.9| and |usr_27.txt| in the
|
||||
introduction.
|
||||
|
||||
3) Options are enclosed in single apostrophes. To go to the help topic for the
|
||||
list option: >
|
||||
:help 'list'
|
||||
< If you only know you are looking for a certain option, you can also do: >
|
||||
:help options.txt
|
||||
< to open the help page which describes all option handling and then search
|
||||
using regular expressions, e.g. textwidth.
|
||||
Certain options have their own namespace, e.g.: >
|
||||
:help cpo-<letter>
|
||||
< for the corresponding flag of the 'cpoptions' settings, substitute <letter>
|
||||
by a specific flag, e.g.: >
|
||||
:help cpo-;
|
||||
< And for the guioption flags: >
|
||||
:help go-<letter>
|
||||
|
||||
4) Normal mode commands do not have a prefix. To go to the help page for the
|
||||
"gt" command: >
|
||||
:help gt
|
||||
|
||||
5) Insert mode commands start with i_. Help for deleting a word: >
|
||||
:help i_CTRL-W
|
||||
|
||||
6) Visual mode commands start with v_. Help for jumping to the other side of
|
||||
the Visual area: >
|
||||
:help v_o
|
||||
|
||||
7) Command line editing and arguments start with c_. Help for using the
|
||||
command argument %: >
|
||||
:help c_%
|
||||
|
||||
8) Ex-commands always start with ":", so to go to the :s command help: >
|
||||
:help :s
|
||||
|
||||
9) Key combinations. They usually start with a single letter indicating
|
||||
the mode for which they can be used. E.g.: >
|
||||
:help i_CTRL-X
|
||||
< takes you to the family of Ctrl-X commands for insert mode which can be
|
||||
used to auto complete different things. Note, that certain keys will
|
||||
always be written the same, e.g. Control will always be CTRL.
|
||||
For normal mode commands there is no prefix and the topic is available at
|
||||
:h CTRL-<Letter>. E.g. >
|
||||
:help CTRL-W
|
||||
< In contrast >
|
||||
:help c_CTRL-R
|
||||
< will describe what the Ctrl-R does when entering commands in the Command
|
||||
line and >
|
||||
:help v_Ctrl-A
|
||||
< talks about incrementing numbers in visual mode and >
|
||||
:help g_CTRL-A
|
||||
< talks about the g<C-A> command (e.g. you have to press "g" then <Ctrl-A>).
|
||||
Here the "g" stand for the normal command "g" which always expects a second
|
||||
key before doing something similar to the commands starting with "z"
|
||||
|
||||
10) Regexp items always start with /. So to get help for the "\+" quantifier
|
||||
in Vim regexes: >
|
||||
:help /\+
|
||||
< If you need to know everything about regular expressions, start reading
|
||||
at: >
|
||||
:help pattern.txt
|
||||
|
||||
11) Registers always start with "quote". To find out about the special ":"
|
||||
register: >
|
||||
:help quote:
|
||||
|
||||
12) Vim Script (VimL) is available at >
|
||||
:help eval.txt
|
||||
< Certain aspects of the language are available at :h expr-X where "X" is a
|
||||
single letter. E.g. >
|
||||
:help expr-!
|
||||
< will take you to the topic describing the "!" (Not) operator for
|
||||
VimScript.
|
||||
Also important is >
|
||||
:help function-list
|
||||
< to find a short description of all functions available. Help topics for
|
||||
VimL functions always include the "()", so: >
|
||||
:help append()
|
||||
< talks about the append VimL function rather than how to append text in the
|
||||
current buffer.
|
||||
|
||||
13) Mappings are talked about in the help page :h |map.txt|. Use >
|
||||
:help mapmode-i
|
||||
< to find out about the |:imap| command. Also use :map-topic
|
||||
to find out about certain subtopics particular for mappings. e.g: >
|
||||
:help :map-local
|
||||
< for buffer-local mappings or >
|
||||
:help map-bar
|
||||
< for how the '|' is handled in mappings.
|
||||
|
||||
14) Command definitions are talked about :h command-topic, so use >
|
||||
:help command-bar
|
||||
< to find out about the '!' argument for custom commands.
|
||||
|
||||
15) Window management commands always start with CTRL-W, so you find the
|
||||
corresponding help at :h CTRL-W_letter. E.g. >
|
||||
:help CTRL-W_p
|
||||
< for moving the previous accessed window). You can also access >
|
||||
:help windows.txt
|
||||
< and read your way through if you are looking for window handling
|
||||
commands.
|
||||
|
||||
16) Use |:helpgrep| to search in all help pages (and also of any installed
|
||||
plugins). See |:helpgrep| for how to use it.
|
||||
To search for a topic: >
|
||||
:helpgrep topic
|
||||
< This takes you to the first match. To go to the next one: >
|
||||
:cnext
|
||||
< All matches are available in the quickfix window which can be opened
|
||||
with: >
|
||||
:copen
|
||||
< Move around to the match you like and press Enter to jump to that help.
|
||||
|
||||
17) The user manual. This describes help topics for beginners in a rather
|
||||
friendly way. Start at |usr_toc.txt| to find the table of content (as you
|
||||
might have guessed): >
|
||||
:help usr_toc.txt
|
||||
< Skim over the contents to find interesting topics. The "Digraphs" and
|
||||
"Entering special characters" items are in chapter 24, so to go to that
|
||||
particular help page: >
|
||||
:help usr_24.txt
|
||||
< Also if you want to access a certain chapter in the help, the chapter
|
||||
number can be accessed directly like this: >
|
||||
:help 10.1
|
||||
< goes to chapter 10.1 in |usr_10.txt| and talks about recording macros.
|
||||
|
||||
18) Highlighting groups. Always start with hl-groupname. E.g. >
|
||||
:help hl-WarningMsg
|
||||
< talks about the WarningMsg highlighting group.
|
||||
|
||||
19) Syntax highlighting is namespaced to :syn-topic e.g. >
|
||||
:help :syn-conceal
|
||||
< talks about the conceal argument for the :syn command.
|
||||
|
||||
20) Quickfix commands usually start with :c while location list commands
|
||||
usually start with :l
|
||||
|
||||
21) Autocommand events can be found by their name: >
|
||||
:help BufWinLeave
|
||||
< To see all possible events: >
|
||||
:help autocommands-events
|
||||
|
||||
22) Command-line switches always start with "-". So for the help of the -f
|
||||
command switch of Vim use: >
|
||||
:help -f
|
||||
|
||||
23) Optional features always start with "+". To find out about the
|
||||
conceal feature use: >
|
||||
:help +conceal
|
||||
|
||||
24) Documentation for included filetype specific functionality is usually
|
||||
available in the form ft-<filetype>-<functionality>. So >
|
||||
:help ft-c-syntax
|
||||
< talks about the C syntax file and the option it provides. Sometimes,
|
||||
additional sections for omni completion >
|
||||
:help ft-php-omni
|
||||
< or filetype plugins >
|
||||
:help ft-tex-plugin
|
||||
< are available.
|
||||
|
||||
25) Error and Warning codes can be looked up directly in the help. So >
|
||||
:help E297
|
||||
< takes you exactly to the description of the swap error message and >
|
||||
:help W10
|
||||
< talks about the warning "Changing a readonly file".
|
||||
Sometimes however, those error codes are not described, but rather are
|
||||
listed at the Vim command that usually causes this. So: >
|
||||
:help E128
|
||||
< takes you to the |:function| command
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 7.4. Last change: 2015 Nov 15
|
||||
*various.txt* For Vim version 7.4. Last change: 2016 Jan 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -650,6 +650,7 @@ K Run a program to lookup the keyword under the
|
||||
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
|
||||
(which is very rare): print memory usage statistics.
|
||||
Only useful for debugging Vim.
|
||||
For incrementing in Visual mode see |v_g_CTRL-A|.
|
||||
|
||||
==============================================================================
|
||||
2. Using Vim like less or more *less*
|
||||
|
||||
+100
-35
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: APT config file
|
||||
" Maintainer: Yann Amar <quidame@poivron.org>
|
||||
" Last Change: 2013 Apr 12
|
||||
" Last Change: 2015 Dec 22
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x and 7.x: Quit when a syntax file was already loaded
|
||||
@@ -38,22 +38,22 @@ setlocal iskeyword+=/,-,.,_,+
|
||||
|
||||
" Incomplete keywords will be treated differently than completely bad strings:
|
||||
syn keyword aptconfGroupIncomplete
|
||||
\ a[cquire] a[ptitude] d[ebtags] d[ebug] d[ir] d[pkg] d[select]
|
||||
\ o[rderlist] p[ackagemanager] p[kgcachegen] q[uiet] r[pm]
|
||||
\ u[nattended-upgrade]
|
||||
\ a[cquire] a[dequate] a[ptitude] a[ptlistbugs] d[ebtags] d[ebug]
|
||||
\ d[ir] d[pkg] d[select] o[rderlist] p[ackagemanager] p[kgcachegen]
|
||||
\ q[uiet] r[pm] s[ynaptic] u[nattended-upgrade] w[hatmaps]
|
||||
|
||||
" Only the following keywords can be used at toplevel (to begin an option):
|
||||
syn keyword aptconfGroup
|
||||
\ acquire apt aptitude debtags debug dir dpkg dselect
|
||||
\ orderlist packagemanager pkgcachegen quiet rpm
|
||||
\ unattended-upgrade
|
||||
\ acquire adequate apt aptitude aptlistbugs debtags debug
|
||||
\ dir dpkg dselect orderlist packagemanager pkgcachegen
|
||||
\ quiet rpm synaptic unattended-upgrade whatmaps
|
||||
|
||||
" Possible options for each group:
|
||||
" Acquire: {{{
|
||||
syn keyword aptconfAcquire contained
|
||||
\ cdrom Check-Valid-Until CompressionTypes ForceHash ftp gpgv
|
||||
\ GzipIndexes http https Languages Max-ValidTime Min-ValidTime PDiffs
|
||||
\ Queue-Mode Retries Source-Symlinks
|
||||
\ cdrom Check-Valid-Until CompressionTypes ForceHash ForceIPv4
|
||||
\ ForceIPv6 ftp gpgv GzipIndexes http https Languages Max-ValidTime
|
||||
\ Min-ValidTime PDiffs Queue-Mode Retries Source-Symlinks
|
||||
|
||||
syn keyword aptconfAcquireCDROM contained
|
||||
\ AutoDetect CdromOnly Mount UMount
|
||||
@@ -62,14 +62,15 @@ syn keyword aptconfAcquireCompressionTypes contained
|
||||
\ bz2 lzma gz Order
|
||||
|
||||
syn keyword aptconfAcquireFTP contained
|
||||
\ Passive Proxy ProxyLogin Timeout
|
||||
\ ForceExtended Passive Proxy ProxyLogin Timeout
|
||||
|
||||
syn keyword aptconfAcquireHTTP contained
|
||||
\ AllowRedirect Dl-Limit Max-Age No-Cache No-Store Pipeline-Depth
|
||||
\ Proxy Timeout User-Agent
|
||||
\ Proxy ProxyAutoDetect Proxy-Auto-Detect Timeout User-Agent
|
||||
|
||||
syn keyword aptconfAcquireHTTPS contained
|
||||
\ CaInfo CaPath CrlFile IssuerCert SslCert SslForceVersion SslKey
|
||||
\ AllowRedirect CaInfo CaPath CrlFile Dl-Limit IssuerCert Max-Age
|
||||
\ No-Cache No-Store Proxy SslCert SslForceVersion SslKey Timeout
|
||||
\ Verify-Host Verify-Peer
|
||||
|
||||
syn keyword aptconfAcquireMaxValidTime contained
|
||||
@@ -83,14 +84,21 @@ syn cluster aptconfAcquire_ contains=aptconfAcquire,
|
||||
\ aptconfAcquireHTTP,aptconfAcquireHTTPS,aptconfAcquireMaxValidTime,
|
||||
\ aptconfAcquirePDiffs
|
||||
" }}}
|
||||
" Adequate: {{{
|
||||
syn keyword aptconfAdequate contained
|
||||
\ Enabled
|
||||
|
||||
syn cluster aptconfAdequate_ contains=aptconfAdequate
|
||||
" }}}
|
||||
" Apt: {{{
|
||||
syn keyword aptconfApt contained
|
||||
\ Architecture Architectures Archive Authentication AutoRemove
|
||||
\ Build-Essential Cache Cache-Grow Cache-Limit Cache-Start CDROM
|
||||
\ Changelogs Clean-Installed Compressor Default-Release
|
||||
\ Force-LoopBreak Get Ignore-Hold Immediate-Configure
|
||||
\ Build-Essential Build-Profiles Cache Cache-Grow Cache-Limit
|
||||
\ Cache-Start CDROM Changelogs Clean-Installed Compressor
|
||||
\ Default-Release Force-LoopBreak Get Ignore-Hold Immediate-Configure
|
||||
\ Install-Recommends Install-Suggests Keep-Fds List-Cleanup
|
||||
\ NeverAutoRemove Never-MarkAuto-Sections Periodic Status-Fd Update
|
||||
\ Move-Autobit-Sections NeverAutoRemove Never-MarkAuto-Sections
|
||||
\ Periodic Status-Fd Update VersionedKernelPackages
|
||||
|
||||
syn keyword aptconfAptAuthentication contained
|
||||
\ TrustCDROM
|
||||
@@ -124,11 +132,12 @@ syn keyword aptconfAptGet contained
|
||||
|
||||
syn keyword aptconfAptPeriodic contained
|
||||
\ AutocleanInterval BackupArchiveInterval BackupLevel
|
||||
\ Download-Upgradeable-Packages MaxAge MaxSize MinAge
|
||||
\ Unattended-Upgrade Update-Package-Lists Verbose
|
||||
\ Download-Upgradeable-Packages Download-Upgradeable-Packages-Debdelta
|
||||
\ Enable MaxAge MaxSize MinAge Unattended-Upgrade Update-Package-Lists
|
||||
\ Verbose
|
||||
|
||||
syn keyword aptconfAptUpdate contained
|
||||
\ Pre-Invoke Post-Invoke Post-Invoke-Success
|
||||
\ List-Refresh Pre-Invoke Post-Invoke Post-Invoke-Success
|
||||
|
||||
syn cluster aptconfApt_ contains=aptconfApt,
|
||||
\ aptconfAptAuthentication,aptconfAptAutoRemove,aptconfAptCache,
|
||||
@@ -240,6 +249,12 @@ syn cluster aptconfAptitude_ contains=aptconfAptitude,
|
||||
\ aptconfAptitudeUIKeyBindings,aptconfAptitudeUIStyles,
|
||||
\ aptconfAptitudeUIStylesElements
|
||||
" }}}
|
||||
" AptListbugs: {{{
|
||||
syn keyword aptconfAptListbugs contained
|
||||
\ IgnoreRegexp Severities
|
||||
|
||||
syn cluster aptconfAptListbugs_ contains=aptconfAptListbugs
|
||||
" }}}
|
||||
" DebTags: {{{
|
||||
syn keyword aptconfDebTags contained
|
||||
\ Vocabulary
|
||||
@@ -251,7 +266,8 @@ syn keyword aptconfDebug contained
|
||||
\ Acquire aptcdrom BuildDeps Hashes IdentCdrom Nolocking
|
||||
\ pkgAcquire pkgAutoRemove pkgCacheGen pkgDepCache pkgDPkgPM
|
||||
\ pkgDPkgProgressReporting pkgInitialize pkgOrderList
|
||||
\ pkgPackageManager pkgPolicy pkgProblemResolver sourceList
|
||||
\ pkgPackageManager pkgPolicy pkgProblemResolver RunScripts
|
||||
\ sourceList
|
||||
|
||||
syn keyword aptconfDebugAcquire contained
|
||||
\ cdrom Ftp gpgv Http Https netrc
|
||||
@@ -295,7 +311,7 @@ syn keyword aptconfDirMedia contained
|
||||
\ MountPath
|
||||
|
||||
syn keyword aptconfDirState contained
|
||||
\ cdroms extended_states Lists mirrors status
|
||||
\ cdroms extended_states Lists mirrors preferences status
|
||||
|
||||
syn cluster aptconfDir_ contains=aptconfDir,
|
||||
\ aptconfDirAptitude,aptconfDirBin,aptconfDirCache,aptconfDirEtc,
|
||||
@@ -303,15 +319,16 @@ syn cluster aptconfDir_ contains=aptconfDir,
|
||||
" }}}
|
||||
" DPkg: {{{
|
||||
syn keyword aptconfDPkg contained
|
||||
\ Build-Options Chroot-Directory ConfigurePending FlushSTDIN MaxArgs
|
||||
\ MaxBytes NoTriggers options Pre-Install-Pkgs Pre-Invoke Post-Invoke
|
||||
\ Build-Options Chroot-Directory ConfigurePending FlushSTDIN
|
||||
\ MaxArgBytes MaxArgs MaxBytes NoTriggers options
|
||||
\ Pre-Install-Pkgs Pre-Invoke Post-Invoke
|
||||
\ Run-Directory StopOnError Tools TriggersPending
|
||||
|
||||
syn keyword aptconfDPkgTools contained
|
||||
\ Options Version
|
||||
\ adequate InfoFD Options Version
|
||||
|
||||
syn cluster aptconfDPkg_ contains=aptconfDPkg,
|
||||
\ aptconfDPkgOrderList,aptconfDPkgOrderListScore,aptconfDPkgTools
|
||||
\ aptconfDPkgTools
|
||||
" }}}
|
||||
" DSelect: {{{
|
||||
syn keyword aptconfDSelect contained
|
||||
@@ -353,23 +370,59 @@ syn keyword aptconfRpm contained
|
||||
|
||||
syn cluster aptconfRpm_ contains=aptconfRpm
|
||||
" }}}
|
||||
" Unattened Upgrade: {{{
|
||||
" Synaptic: {{{
|
||||
syn keyword aptconfSynaptic contained
|
||||
\ AskQuitOnProceed AskRelated AutoCleanCache CleanCache DefaultDistro
|
||||
\ delAction delHistory Download-Only ftpProxy ftpProxyPort httpProxy
|
||||
\ httpProxyPort Install-Recommends LastSearchType Maximized noProxy
|
||||
\ OneClickOnStatusActions ShowAllPkgInfoInMain showWelcomeDialog
|
||||
\ ToolbarState undoStackSize update upgradeType useProxy UseStatusColors
|
||||
\ UseTerminal useUserFont useUserTerminalFont ViewMode
|
||||
\ availVerColumnPos availVerColumnVisible componentColumnPos
|
||||
\ componentColumnVisible descrColumnPos descrColumnVisible
|
||||
\ downloadSizeColumnPos downloadSizeColumnVisible hpanedPos
|
||||
\ instVerColumnPos instVerColumnVisible instSizeColumnPos
|
||||
\ instSizeColumnVisible nameColumnPos nameColumnVisible
|
||||
\ sectionColumnPos sectionColumnVisible statusColumnPos
|
||||
\ statusColumnVisible supportedColumnPos supportedColumnVisible
|
||||
\ vpanedPos windowWidth windowHeight windowX windowY closeZvt
|
||||
\ color-available color-available-locked color-broken color-downgrade
|
||||
\ color-install color-installed-locked color-installed-outdated
|
||||
\ color-installed-updated color-new color-purge color-reinstall
|
||||
\ color-remove color-upgrade
|
||||
|
||||
syn keyword aptconfSynapticUpdate contained
|
||||
\ last type
|
||||
|
||||
syn cluster aptconfSynaptic_ contains=aptconfSynaptic,
|
||||
\ aptconfSynapticUpdate
|
||||
" }}}
|
||||
" Unattended Upgrade: {{{
|
||||
syn keyword aptconfUnattendedUpgrade contained
|
||||
\ AutoFixInterruptedDpkg Automatic-Reboot InstallOnShutdown Mail
|
||||
\ MailOnlyOnError MinimalSteps Origins-Pattern Package-Blacklist
|
||||
\ AutoFixInterruptedDpkg Automatic-Reboot Automatic-Reboot-Time
|
||||
\ Automatic-Reboot-WithUsers InstallOnShutdown Mail MailOnlyOnError
|
||||
\ MinimalSteps Origins-Pattern Package-Blacklist
|
||||
\ Remove-Unused-Dependencies
|
||||
|
||||
syn cluster aptconfUnattendedUpgrade_ contains=aptconfUnattendedUpgrade
|
||||
" }}}
|
||||
" Whatmaps: {{{
|
||||
syn keyword aptconfWhatmaps contained
|
||||
\ Enable-Restart Security-Update-Origins
|
||||
|
||||
syn cluster aptconfWhatmaps_ contains=aptconfWhatmaps
|
||||
" }}}
|
||||
|
||||
syn case match
|
||||
|
||||
" Now put all the keywords (and 'valid' options) in a single cluster:
|
||||
syn cluster aptconfOptions contains=aptconfRegexpOpt,
|
||||
\ @aptconfAcquire_,@aptconfApt_,@aptconfAptitude_,@aptconfDebTags_,
|
||||
\ @aptconfDebug_,@aptconfDir_,@aptconfDPkg_,@aptconfDSelect_,
|
||||
\ @aptconfOrderList_,@aptconfPackageManager_,@aptconfPkgCacheGen_,
|
||||
\ @aptconfQuiet_,@aptconfRpm_,@aptconfUnattendedUpgrade_
|
||||
\ @aptconfAcquire_,@aptconfAdequate_,@aptconfApt_,@aptconfAptitude_,
|
||||
\ @aptconfAptListbugs_,@aptconfDebTags_,@aptconfDebug_,@aptconfDir_,
|
||||
\ @aptconfDPkg_,@aptconfDSelect_,@aptconfOrderList_,
|
||||
\ @aptconfPackageManager_,@aptconfPkgCacheGen_,@aptconfQuiet_,
|
||||
\ @aptconfRpm_,@aptconfSynaptic_,@aptconfUnattendedUpgrade_,
|
||||
\ @aptconfWhatmaps_
|
||||
|
||||
" Syntax:
|
||||
syn match aptconfSemiColon ';'
|
||||
@@ -382,8 +435,11 @@ syn region aptconfInclude matchgroup=aptconfOperator start='::' end='::\|\s'me=
|
||||
|
||||
" Basic Syntax Errors: XXX avoid to generate false positives !!!
|
||||
"
|
||||
" * Invalid comment format (seems to not cause errors, but...):
|
||||
syn match aptconfAsError display '^#.*'
|
||||
" * Undocumented inline comment. Since it is currently largely used, and does
|
||||
" not seem to cause trouble ('apt-config dump' never complains when # is used
|
||||
" the same way than //) it has been moved to aptconfComment group. But it
|
||||
" still needs to be defined here (i.e. before #clear and #include directives)
|
||||
syn match aptconfComment '#.*' contains=@aptconfCommentSpecial
|
||||
"
|
||||
" * When a semicolon is missing after a double-quoted string:
|
||||
" There are some cases (for example in the Dir group of options, but not only)
|
||||
@@ -445,6 +501,8 @@ hi def link aptconfAcquireHTTPS aptconfOption
|
||||
hi def link aptconfAcquireMaxValidTime aptconfOption
|
||||
hi def link aptconfAcquirePDiffs aptconfOption
|
||||
|
||||
hi def link aptconfAdequate aptconfOption
|
||||
|
||||
hi def link aptconfApt aptconfOption
|
||||
hi def link aptconfAptAuthentication aptconfOption
|
||||
hi def link aptconfAptAutoRemove aptconfOption
|
||||
@@ -471,6 +529,8 @@ hi def link aptconfAptitudeUIKeyBindings aptconfOption
|
||||
hi def link aptconfAptitudeUIStyles aptconfOption
|
||||
hi def link aptconfAptitudeUIStylesElements aptconfOption
|
||||
|
||||
hi def link aptconfAptListbugs aptconfOption
|
||||
|
||||
hi def link aptconfDebTags aptconfOption
|
||||
|
||||
hi def link aptconfDebug aptconfOption
|
||||
@@ -504,8 +564,13 @@ hi def link aptconfQuiet aptconfOption
|
||||
|
||||
hi def link aptconfRpm aptconfOption
|
||||
|
||||
hi def link aptconfSynaptic aptconfOption
|
||||
hi def link aptconfSynapticUpdate aptconfOption
|
||||
|
||||
hi def link aptconfUnattendedUpgrade aptconfOption
|
||||
|
||||
hi def link aptconfWhatmaps aptconfOption
|
||||
|
||||
let b:current_syntax = "aptconf"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: reStructuredText documentation format
|
||||
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2015-09-07
|
||||
" Latest Revision: 2016-01-05
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -13,8 +13,6 @@ set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn match rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
|
||||
|
||||
syn match rstTransition /^[=`:.'"~^_*+#-]\{4,}\s*$/
|
||||
|
||||
syn cluster rstCruft contains=rstEmphasis,rstStrongEmphasis,
|
||||
@@ -123,6 +121,8 @@ call s:DefineInlineMarkup('InlineLiteral', '``', "", '``')
|
||||
call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}')
|
||||
call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`')
|
||||
|
||||
syn match rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
|
||||
|
||||
" TODO: Can’t remember why these two can’t be defined like the ones above.
|
||||
execute 'syn match rstFootnoteReference contains=@NoSpell' .
|
||||
\ ' +\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+'
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
" Language: OpenSSH client configuration file (ssh_config)
|
||||
" Author: David Necas (Yeti)
|
||||
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Last Change: 2015 Dec 3
|
||||
" SSH Version: 7.0
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Last Change: 2016 Jan 15
|
||||
" SSH Version: 7.1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -69,8 +70,8 @@ syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
|
||||
syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
|
||||
syn keyword sshconfigAddressFamily inet inet6
|
||||
|
||||
syn match sshconfigIPQoS "af1[1234]"
|
||||
syn match sshconfigIPQoS "af2[23]"
|
||||
syn match sshconfigIPQoS "af1[123]"
|
||||
syn match sshconfigIPQoS "af2[123]"
|
||||
syn match sshconfigIPQoS "af3[123]"
|
||||
syn match sshconfigIPQoS "af4[123]"
|
||||
syn match sshconfigIPQoS "cs[0-7]"
|
||||
@@ -106,6 +107,10 @@ syn keyword sshconfigMatch canonical exec host originalhost user localuser all
|
||||
syn keyword sshconfigKeyword AddressFamily
|
||||
syn keyword sshconfigKeyword BatchMode
|
||||
syn keyword sshconfigKeyword BindAddress
|
||||
syn keyword sshconfigKeyword CanonicalDomains
|
||||
syn keyword sshconfigKeyword CanonicalizeFallbackLocal
|
||||
syn keyword sshconfigKeyword CanonicalizeHostname
|
||||
syn keyword sshconfigKeyword CanonicalizeMaxDots
|
||||
syn keyword sshconfigKeyword ChallengeResponseAuthentication
|
||||
syn keyword sshconfigKeyword CheckHostIP
|
||||
syn keyword sshconfigKeyword Cipher
|
||||
@@ -145,6 +150,8 @@ syn keyword sshconfigKeyword HostbasedKeyTypes
|
||||
syn keyword sshconfigKeyword IPQoS
|
||||
syn keyword sshconfigKeyword IdentitiesOnly
|
||||
syn keyword sshconfigKeyword IdentityFile
|
||||
syn keyword sshconfigKeyword IgnoreUnknown
|
||||
syn keyword sshconfigKeyword IPQoS
|
||||
syn keyword sshconfigKeyword KbdInteractiveAuthentication
|
||||
syn keyword sshconfigKeyword KbdInteractiveDevices
|
||||
syn keyword sshconfigKeyword KexAlgorithms
|
||||
@@ -182,6 +189,7 @@ syn keyword sshconfigKeyword UseBlacklistedKeys
|
||||
syn keyword sshconfigKeyword UsePrivilegedPort
|
||||
syn keyword sshconfigKeyword User
|
||||
syn keyword sshconfigKeyword UserKnownHostsFile
|
||||
syn keyword sshconfigKeyword UseRoaming
|
||||
syn keyword sshconfigKeyword VerifyHostKeyDNS
|
||||
syn keyword sshconfigKeyword VisualHostKey
|
||||
syn keyword sshconfigKeyword XAuthLocation
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
" Maintainer: Dominik Fischer <d dot f dot fischer at web dot de>
|
||||
" Contributor: Thilo Six
|
||||
" Contributor: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Contributor: Karsten Hopp <karsten@redhat.com>
|
||||
" Originally: 2009-07-09
|
||||
" Last Change: 2015 Dec 3
|
||||
" SSH Version: 7.0
|
||||
" Last Change: 2016 Jan 12
|
||||
" SSH Version: 7.1
|
||||
"
|
||||
|
||||
" Setup
|
||||
@@ -65,8 +66,8 @@ syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
|
||||
|
||||
syn keyword sshdconfigCompression delayed
|
||||
|
||||
syn match sshdconfigIPQoS "af1[1234]"
|
||||
syn match sshdconfigIPQoS "af2[23]"
|
||||
syn match sshdconfigIPQoS "af1[123]"
|
||||
syn match sshdconfigIPQoS "af2[123]"
|
||||
syn match sshdconfigIPQoS "af3[123]"
|
||||
syn match sshdconfigIPQoS "af4[123]"
|
||||
syn match sshdconfigIPQoS "cs[0-7]"
|
||||
@@ -109,6 +110,7 @@ syn keyword sshdconfigKeyword AllowGroups
|
||||
syn keyword sshdconfigKeyword AllowStreamLocalForwarding
|
||||
syn keyword sshdconfigKeyword AllowTcpForwarding
|
||||
syn keyword sshdconfigKeyword AllowUsers
|
||||
syn keyword sshdconfigKeyword AuthenticationMethods
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysFile
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysCommand
|
||||
syn keyword sshdconfigKeyword AuthorizedKeysCommandUser
|
||||
@@ -132,6 +134,7 @@ syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck
|
||||
syn keyword sshdconfigKeyword GatewayPorts
|
||||
syn keyword sshdconfigKeyword HostCertificate
|
||||
syn keyword sshdconfigKeyword HostKey
|
||||
syn keyword sshdconfigKeyword HostKeyAgent
|
||||
syn keyword sshdconfigKeyword HostKeyAlgorithms
|
||||
syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes
|
||||
syn keyword sshdconfigKeyword HostbasedAuthentication
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
# Project: gvimext
|
||||
# Generates gvimext.dll with gcc.
|
||||
# To be used with Cygwin.
|
||||
#
|
||||
# Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
|
||||
# Now it is allocated dymanically by the linker by evaluating all DLLs
|
||||
# already loaded in memory. The binary image contains as well information
|
||||
# for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
|
||||
|
||||
# If cross-compiling set this to yes, else set it to no
|
||||
CROSS = no
|
||||
#CROSS = yes
|
||||
# For the old MinGW 2.95 (the one you get e.g. with debian woody)
|
||||
# set the following variable to yes and check if the executables are
|
||||
# really named that way.
|
||||
# If you have a newer MinGW or you are using cygwin set it to no and
|
||||
# check also the executables
|
||||
MINGWOLD = no
|
||||
|
||||
# Link against the shared versions of libgcc/libstdc++ by default. Set
|
||||
# STATIC_STDCPLUS to "yes" to link against static versions instead.
|
||||
STATIC_STDCPLUS=no
|
||||
#STATIC_STDCPLUS=yes
|
||||
|
||||
# Note: -static-libstdc++ is not available until gcc 4.5.x.
|
||||
LDFLAGS += -shared
|
||||
ifeq (yes, $(STATIC_STDCPLUS))
|
||||
LDFLAGS += -static-libgcc -static-libstdc++
|
||||
endif
|
||||
|
||||
ifeq ($(CROSS),yes)
|
||||
DEL = rm
|
||||
ifeq ($(MINGWOLD),yes)
|
||||
CXXFLAGS := -O2 -fvtable-thunks
|
||||
else
|
||||
CXXFLAGS := -O2
|
||||
endif
|
||||
else
|
||||
CXXFLAGS := -O2
|
||||
ifneq (sh.exe, $(SHELL))
|
||||
DEL = rm
|
||||
else
|
||||
DEL = del
|
||||
endif
|
||||
endif
|
||||
CXX := $(CROSS_COMPILE)g++
|
||||
WINDRES := $(CROSS_COMPILE)windres
|
||||
WINDRES_CXX = $(CXX)
|
||||
WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
|
||||
LIBS := -luuid
|
||||
RES := gvimext.res
|
||||
DEFFILE = gvimext_ming.def
|
||||
OBJ := gvimext.o
|
||||
|
||||
DLL := gvimext.dll
|
||||
|
||||
.PHONY: all all-before all-after clean clean-custom
|
||||
|
||||
all: all-before $(DLL) all-after
|
||||
|
||||
$(DLL): $(OBJ) $(RES) $(DEFFILE)
|
||||
$(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
|
||||
-Wl,--enable-auto-image-base \
|
||||
-Wl,--enable-auto-import \
|
||||
-Wl,--whole-archive \
|
||||
$^ \
|
||||
-Wl,--no-whole-archive \
|
||||
$(LIBS)
|
||||
|
||||
gvimext.o: gvimext.cpp
|
||||
$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
|
||||
|
||||
$(RES): gvimext_ming.rc
|
||||
$(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
|
||||
|
||||
clean: clean-custom
|
||||
-$(DEL) $(OBJ) $(RES) $(DLL)
|
||||
@@ -1,6 +1,6 @@
|
||||
# Project: gvimext
|
||||
# Generates gvimext.dll with gcc.
|
||||
# To be used with MingW.
|
||||
# To be used with MingW and Cygwin.
|
||||
#
|
||||
# Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
|
||||
# Now it is allocated dymanically by the linker by evaluating all DLLs
|
||||
|
||||
@@ -16,6 +16,9 @@ NODEBUG = 1
|
||||
# On Windows NT
|
||||
! ifndef CPU
|
||||
CPU = i386
|
||||
! if !defined(PLATFORM) && defined(TARGET_CPU)
|
||||
PLATFORM = $(TARGET_CPU)
|
||||
! endif
|
||||
! ifdef PLATFORM
|
||||
! if ("$(PLATFORM)" == "x64") || ("$(PLATFORM)" == "X64")
|
||||
CPU = AMD64
|
||||
|
||||
+60
-13
@@ -24,7 +24,7 @@ Contents:
|
||||
5. Cross compiling for Win32 from a Linux machine
|
||||
6. Building with Python support
|
||||
7. Building with Python3 support
|
||||
8. Building with MzScheme support
|
||||
8. Building with MzScheme/Racket support
|
||||
9. Building with Lua support
|
||||
10. Building with Perl support
|
||||
11. Building with Ruby support
|
||||
@@ -415,8 +415,10 @@ E.g. When using MSVC (as one line):
|
||||
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
|
||||
|
||||
|
||||
8. Building with MzScheme support
|
||||
=================================
|
||||
8. Building with MzScheme/Racket support
|
||||
========================================
|
||||
|
||||
1) Building with MzScheme support
|
||||
|
||||
(written by Sergey Khorev <sergey.khorev@gmail.com>)
|
||||
|
||||
@@ -451,31 +453,75 @@ After a successful build, these dlls can be freely removed, leaving them in
|
||||
%WINDOWS%\System32 only.
|
||||
|
||||
|
||||
2) Building with Racket support
|
||||
|
||||
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
|
||||
(https://racket-lang.org/) support can be built with either MSVC or MinGW (or
|
||||
Cygwin).
|
||||
|
||||
You need to set the following variables:
|
||||
|
||||
MZSCHEME: Where Racket is installed.
|
||||
E.g. C:\Program Files (x86)\Racket
|
||||
DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
|
||||
MZSCHEME_VER: Racket DLL version. E.g. 3m_9z0ds0 for Racket 6.3.
|
||||
MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
|
||||
runtime. Default: $(MZSCHEME)\collects
|
||||
User can override this with the PLTCOLLECTS environment
|
||||
variable.
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak
|
||||
MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
|
||||
MZSCHEME_VER=3m_9z0ds0
|
||||
|
||||
Spaces should be escaped with '\'.
|
||||
|
||||
|
||||
9. Building with Lua support
|
||||
============================
|
||||
|
||||
Vim with Lua support can be built with either MSVC or MinGW (or Cygwin).
|
||||
You can use binaries from LuaBinaries.
|
||||
http://luabinaries.sourceforge.net/
|
||||
Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin).
|
||||
You can use binaries from LuaBinaries: http://luabinaries.sourceforge.net/
|
||||
This also applies to when you get a Vim executable and don't build yourself,
|
||||
do the part up to "Build".
|
||||
|
||||
1) Download and install LuaBinaries
|
||||
|
||||
Go to the Download page of LuaBinaries:
|
||||
http://luabinaries.sourceforge.net/download.html
|
||||
http://luabinaries.sourceforge.net/download.html
|
||||
|
||||
Download lua-X.Y.Z_Win32_dllw4_lib.zip for x86 or
|
||||
lua-X.Y.Z_Win64_dllw4_lib.zip for x64. You can use them for both MSVC and
|
||||
lua-X.Y.Z_Win64_dllw4_lib.zip for x64. You can use them both for MSVC and
|
||||
MinGW.
|
||||
|
||||
Unpack it to a working directory. E.g. C:\projects\lua53.
|
||||
Lua's header files will be installed under the include directory.
|
||||
|
||||
Copy luaXY.dll to your Windows system directory. The system directory depends
|
||||
on your Windows bitness and Vim bitness:
|
||||
32-bit Vim on 32-bit Windows: C:\Windows\System32
|
||||
32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
|
||||
64-bit Vim on 64-bit Windows: C:\Windows\System32
|
||||
|
||||
Or another option is copying luaXY.dll to the directory where gvim.exe
|
||||
(or vim.exe) is.
|
||||
|
||||
|
||||
2) Build
|
||||
You need to set the following variables:
|
||||
|
||||
LUA: Where Lua is installed. E.g. C:\projects\lua53.
|
||||
DYNAMIC_LUA: Whether dynamic linking is used. Usually, set to yes.
|
||||
LUA_VER: Lua version. E.g. 53 for Lua 5.3.X.
|
||||
You need to set LUA, DYNAMIC_LUA and LUA_VER.
|
||||
|
||||
LUA: Where Lua's header files are installed. E.g. C:\projects\lua53.
|
||||
DYNAMIC_LUA: Whether dynamic linking is used. Set to yes.
|
||||
LUA_VER: Lua version. E.g. 53 for Lua 5.3.X.
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
@@ -487,7 +533,8 @@ Or when using MinGW (as one line):
|
||||
mingw32-make -f Make_mingw.mak
|
||||
LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
|
||||
|
||||
Or when using Cygwin (as one line):
|
||||
|
||||
Or when using Cygwin (as one line) (untested):
|
||||
|
||||
make -f Make_cyg.mak
|
||||
LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
|
||||
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{
|
||||
ACTIONS = {"_cycleWindows" = id; "_cycleWindowsBackwards" = id; addNewTab = id; };
|
||||
CLASS = FirstResponder;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
fileOpen = id;
|
||||
fontSizeDown = id;
|
||||
fontSizeUp = id;
|
||||
forceNewWindow = id;
|
||||
newWindow = id;
|
||||
newWindowAndActivate = id;
|
||||
openWebsite = id;
|
||||
orderFrontPreferencePanel = id;
|
||||
selectNextWindow = id;
|
||||
selectPreviousWindow = id;
|
||||
showHelp = id;
|
||||
showVimHelp = id;
|
||||
zoomAll = id;
|
||||
};
|
||||
CLASS = MMAppController;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{CLASS = NSMenu; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
ACTIONS = {didAdjustSubviews = RBSplitView; willAdjustSubviews = RBSplitView; };
|
||||
CLASS = NSObject;
|
||||
LANGUAGE = ObjC;
|
||||
},
|
||||
{CLASS = RBSplitSubview; LANGUAGE = ObjC; SUPERCLASS = NSView; },
|
||||
{
|
||||
CLASS = RBSplitView;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {delegate = id; };
|
||||
SUPERCLASS = RBSplitSubview;
|
||||
},
|
||||
{
|
||||
ACTIONS = {checkForUpdates = id; };
|
||||
CLASS = SUUpdater;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSObject;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment version="1060" identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="235" id="236"/>
|
||||
<outlet property="dockMenu" destination="337" id="341"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<menu title="MainMenu" systemMenu="main" id="29" userLabel="MainMenu">
|
||||
<items>
|
||||
<menuItem title="MacVim" id="56">
|
||||
<menu key="submenu" title="MacVim" systemMenu="apple" id="57">
|
||||
<items>
|
||||
<menuItem title="About MacVim" id="58">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Check for updates…" id="255">
|
||||
<connections>
|
||||
<action selector="checkForUpdates:" target="Jqk-qh-n0J" id="Wau-rL-cbn"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="196">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Preferences…" keyEquivalent="," id="129">
|
||||
<connections>
|
||||
<action selector="orderFrontPreferencePanel:" target="235" id="252"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="143">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Services" id="131">
|
||||
<menu key="submenu" title="Services" systemMenu="services" id="130"/>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="144">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Hide MacVim" keyEquivalent="h" id="134">
|
||||
<connections>
|
||||
<action selector="hide:" target="-2" id="152"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Hide Others" keyEquivalent="h" id="145">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="hideOtherApplications:" target="-2" id="146"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Show All" id="150">
|
||||
<connections>
|
||||
<action selector="unhideAllApplications:" target="-2" id="153"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="149">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Quit MacVim" keyEquivalent="q" id="136">
|
||||
<connections>
|
||||
<action selector="terminate:" target="-2" id="139"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="File" id="217">
|
||||
<menu key="submenu" title="File" id="218">
|
||||
<items>
|
||||
<menuItem title="New Window" keyEquivalent="n" id="219">
|
||||
<connections>
|
||||
<action selector="newWindow:" target="235" id="251"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Open…" keyEquivalent="o" id="261">
|
||||
<connections>
|
||||
<action selector="fileOpen:" target="235" id="277"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Open Recent" id="262">
|
||||
<menu key="submenu" title="Open Recent" id="271">
|
||||
<items>
|
||||
<menuItem title="Clear Menu" id="272">
|
||||
<connections>
|
||||
<action selector="clearRecentDocuments:" target="-1" id="278"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="263">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Close" keyEquivalent="w" id="248">
|
||||
<connections>
|
||||
<action selector="performClose:" target="-1" id="249"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Edit" id="281">
|
||||
<menu key="submenu" title="Edit" id="282">
|
||||
<items>
|
||||
<menuItem title="Undo" keyEquivalent="z" id="283">
|
||||
<connections>
|
||||
<action selector="undo:" target="-1" id="316"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Redo" keyEquivalent="Z" id="284">
|
||||
<connections>
|
||||
<action selector="redo:" target="-1" id="317"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="285">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Cut" keyEquivalent="x" id="286">
|
||||
<connections>
|
||||
<action selector="cut:" target="-1" id="318"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Copy" keyEquivalent="c" id="287">
|
||||
<connections>
|
||||
<action selector="copy:" target="-1" id="319"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Paste" keyEquivalent="v" id="288">
|
||||
<connections>
|
||||
<action selector="paste:" target="-1" id="320"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Delete" id="290">
|
||||
<connections>
|
||||
<action selector="delete:" target="-1" id="321"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Select All" keyEquivalent="a" id="291">
|
||||
<connections>
|
||||
<action selector="selectAll:" target="-1" id="322"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="309">
|
||||
<menu key="submenu" title="Window" id="310">
|
||||
<items>
|
||||
<menuItem title="Minimize" keyEquivalent="m" id="311">
|
||||
<connections>
|
||||
<action selector="performMiniaturize:" target="-1" id="323"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Zoom" id="312">
|
||||
<connections>
|
||||
<action selector="performZoom:" target="-1" id="324"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="313">
|
||||
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
||||
</menuItem>
|
||||
<menuItem title="Bring All to Front" id="314">
|
||||
<connections>
|
||||
<action selector="arrangeInFront:" target="-1" id="325"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Help" id="232">
|
||||
<menu key="submenu" title="Help" id="233">
|
||||
<items>
|
||||
<menuItem title="MacVim Help" keyEquivalent="?" id="275">
|
||||
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="showVimHelp:" target="235" id="329"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="MacVim Website" id="234">
|
||||
<connections>
|
||||
<action selector="openWebsite:" target="235" id="274"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
<customObject id="235" userLabel="MMAppController" customClass="MMAppController"/>
|
||||
<menu id="337" userLabel="DockMenu">
|
||||
<items>
|
||||
<menuItem title="New Window" id="338">
|
||||
<attributedString key="attributedTitle"/>
|
||||
<connections>
|
||||
<action selector="newWindowAndActivate:" target="235" id="350"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
<customObject id="Jqk-qh-n0J" customClass="SUUpdater"/>
|
||||
</objects>
|
||||
</document>
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>84 130 356 240 0 0 1024 746 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>29</key>
|
||||
<string>84 375 281 44 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>489.0</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../../MacVim.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8S165</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1255,7 +1255,12 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>90</string>
|
||||
<string>92</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
@@ -1301,7 +1306,9 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>SUFeedURL</key>
|
||||
<string>http://b4winckler.github.com/macvim/appcast/stable.xml</string>
|
||||
<string>https://raw.githubusercontent.com/macvim-dev/macvim/gh-pages/appcast/latest.xml</string>
|
||||
<key>SUPublicDSAKeyFile</key>
|
||||
<string>dsa_pub.pem</string>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<true/>
|
||||
|
||||
|
||||
@@ -155,7 +155,14 @@ enum {
|
||||
[[target windowController] setWindow:self];
|
||||
|
||||
oldTabBarStyle = [[view tabBarControl] styleName];
|
||||
[[view tabBarControl] setStyleNamed:@"Unified"];
|
||||
|
||||
NSString *style;
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
|
||||
style = @"Yosemite";
|
||||
#else
|
||||
style = @"Unified";
|
||||
#endif
|
||||
[[view tabBarControl] setStyleNamed:style];
|
||||
|
||||
// add text view
|
||||
oldPosition = [view frame].origin;
|
||||
|
||||
+10
-2
@@ -115,8 +115,8 @@ enum {
|
||||
|
||||
// Create the tab bar control (which is responsible for actually
|
||||
// drawing the tabline and tabs).
|
||||
NSRect tabFrame = { { 0, frame.size.height - 22 },
|
||||
{ frame.size.width, 22 } };
|
||||
NSRect tabFrame = { { 0, frame.size.height - kPSMTabBarControlHeight },
|
||||
{ frame.size.width, kPSMTabBarControlHeight } };
|
||||
tabBarControl = [[PSMTabBarControl alloc] initWithFrame:tabFrame];
|
||||
|
||||
[tabView setDelegate:tabBarControl];
|
||||
@@ -125,10 +125,18 @@ enum {
|
||||
[tabBarControl setDelegate:self];
|
||||
[tabBarControl setHidden:YES];
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
|
||||
CGFloat screenWidth = [[NSScreen mainScreen] frame].size.width;
|
||||
[tabBarControl setStyleNamed:@"Yosemite"];
|
||||
[tabBarControl setCellMinWidth:120];
|
||||
[tabBarControl setCellMaxWidth:screenWidth];
|
||||
[tabBarControl setCellOptimumWidth:screenWidth];
|
||||
#else
|
||||
[tabBarControl setCellMinWidth:[ud integerForKey:MMTabMinWidthKey]];
|
||||
[tabBarControl setCellMaxWidth:[ud integerForKey:MMTabMaxWidthKey]];
|
||||
[tabBarControl setCellOptimumWidth:
|
||||
[ud integerForKey:MMTabOptimumWidthKey]];
|
||||
#endif
|
||||
|
||||
[tabBarControl setShowAddTabButton:[ud boolForKey:MMShowAddTabButtonKey]];
|
||||
[[tabBarControl addTabButton] setTarget:self];
|
||||
|
||||
@@ -80,6 +80,14 @@
|
||||
#define FUOPT_BGCOLOR_HLGROUP 0x004
|
||||
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
|
||||
# define TABBAR_STYLE_UNIFINED @"Yosemite"
|
||||
# define TABBAR_STYLE_METAL @"Yosemite"
|
||||
#else
|
||||
# define TABBAR_STYLE_UNIFINED @"Unified"
|
||||
# define TABBAR_STYLE_METAL @"Metal"
|
||||
#endif
|
||||
|
||||
|
||||
@interface MMWindowController (Private)
|
||||
- (NSSize)contentSize;
|
||||
@@ -1173,7 +1181,7 @@
|
||||
[[window animator] setAlphaValue:0];
|
||||
} completionHandler:^{
|
||||
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Unified"];
|
||||
[[vimView tabBarControl] setStyleNamed:TABBAR_STYLE_UNIFINED];
|
||||
[self updateTablineSeparator];
|
||||
|
||||
// Stay dark for some time to wait for things to sync, then do the full screen operation
|
||||
@@ -1234,7 +1242,7 @@
|
||||
fullScreenEnabled = NO;
|
||||
[window setAlphaValue:1];
|
||||
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Metal"];
|
||||
[[vimView tabBarControl] setStyleNamed:TABBAR_STYLE_METAL];
|
||||
[self updateTablineSeparator];
|
||||
[window setFrame:preFullScreenFrame display:YES];
|
||||
}
|
||||
@@ -1264,7 +1272,7 @@
|
||||
[[window animator] setAlphaValue:0];
|
||||
} completionHandler:^{
|
||||
[window setStyleMask:([window styleMask] & ~NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Metal"];
|
||||
[[vimView tabBarControl] setStyleNamed:TABBAR_STYLE_METAL];
|
||||
[self updateTablineSeparator];
|
||||
[window setFrame:preFullScreenFrame display:YES];
|
||||
|
||||
@@ -1309,7 +1317,7 @@
|
||||
fullScreenEnabled = YES;
|
||||
[window setAlphaValue:1];
|
||||
[window setStyleMask:([window styleMask] | NSFullScreenWindowMask)];
|
||||
[[vimView tabBarControl] setStyleNamed:@"Unified"];
|
||||
[[vimView tabBarControl] setStyleNamed:TABBAR_STYLE_UNIFINED];
|
||||
[self updateTablineSeparator];
|
||||
[self maximizeWindow:fullScreenOptions];
|
||||
}
|
||||
|
||||
@@ -64,6 +64,9 @@
|
||||
1DE9B9500D341AB8008FEDD4 /* MMWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DE9B94E0D341AB8008FEDD4 /* MMWindow.m */; };
|
||||
1DED78600C6DE43D0079945F /* vimrc in Copy Vim Runtime Files */ = {isa = PBXBuildFile; fileRef = 1DED785F0C6DE43D0079945F /* vimrc */; };
|
||||
1DFE25A50C527BC4003000F7 /* PSMTabBarControl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D493DB90C52533B00AB718C /* PSMTabBarControl.framework */; };
|
||||
52A364731C4A5789005757EC /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52A364721C4A5789005757EC /* Sparkle.framework */; };
|
||||
52A364761C4A57C1005757EC /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 52A364721C4A5789005757EC /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
52B7ED9B1C4A4D6900AFFF15 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 52B7ED9A1C4A4D6900AFFF15 /* dsa_pub.pem */; };
|
||||
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
|
||||
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
|
||||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||
@@ -112,6 +115,7 @@
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
52A364761C4A57C1005757EC /* Sparkle.framework in Copy Frameworks */,
|
||||
1D493DBA0C52534300AB718C /* PSMTabBarControl.framework in Copy Frameworks */,
|
||||
);
|
||||
name = "Copy Frameworks";
|
||||
@@ -214,6 +218,8 @@
|
||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
32CA4F630368D1EE00C91783 /* MacVim_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacVim_Prefix.pch; sourceTree = "<group>"; };
|
||||
52818AFA1C1C075300F59085 /* QuickLookStephen.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = QuickLookStephen.xcodeproj; path = qlstephen/QuickLookStephen.xcodeproj; sourceTree = "<group>"; };
|
||||
52A364721C4A5789005757EC /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
|
||||
52B7ED9A1C4A4D6900AFFF15 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; };
|
||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D1107320486CEB800E47090 /* MacVim.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MacVim.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
@@ -226,6 +232,7 @@
|
||||
1DFE25A50C527BC4003000F7 /* PSMTabBarControl.framework in Frameworks */,
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
||||
1D8B5A53104AF9FF002E59D5 /* Carbon.framework in Frameworks */,
|
||||
52A364731C4A5789005757EC /* Sparkle.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -379,6 +386,7 @@
|
||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52B7ED9A1C4A4D6900AFFF15 /* dsa_pub.pem */,
|
||||
1D384A0D100D671700D3C22F /* KeyBinding.plist */,
|
||||
1D9C602E0EF79C0C0034AD44 /* MacVim.icns */,
|
||||
1D8BEA73104992290069B072 /* FindAndReplace.nib */,
|
||||
@@ -402,6 +410,7 @@
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
52A364721C4A5789005757EC /* Sparkle.framework */,
|
||||
1D8B5A52104AF9FF002E59D5 /* Carbon.framework */,
|
||||
1D493DB30C52533B00AB718C /* PSMTabBarControl.xcodeproj */,
|
||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
|
||||
@@ -513,6 +522,7 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
52B7ED9B1C4A4D6900AFFF15 /* dsa_pub.pem in Resources */,
|
||||
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
|
||||
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
|
||||
1D0E051C0BA5F83800B6049E /* Colors.plist in Resources */,
|
||||
@@ -664,6 +674,7 @@
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||
"$(PROJECT_DIR)",
|
||||
);
|
||||
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
@@ -694,6 +705,7 @@
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
|
||||
"$(PROJECT_DIR)",
|
||||
);
|
||||
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
|
||||
GCC_DYNAMIC_NO_PIC = YES;
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
52C0B9B515BDB7A9000C268F /* overflowImagePressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52C0B9B315BDB7A9000C268F /* overflowImagePressed@2x.png */; };
|
||||
52C268D015BDB72B0012FECA /* overflowImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 52C268CE15BDB72B0012FECA /* overflowImage.png */; };
|
||||
52C268D115BDB72B0012FECA /* overflowImagePressed.png in Resources */ = {isa = PBXBuildFile; fileRef = 52C268CF15BDB72B0012FECA /* overflowImagePressed.png */; };
|
||||
52FAFCCF1C30F4B500C6E613 /* TabNewYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 52FAFCCD1C30F4B500C6E613 /* TabNewYosemite.png */; };
|
||||
52FAFCD01C30F4B500C6E613 /* TabNewYosemite@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 52FAFCCE1C30F4B500C6E613 /* TabNewYosemite@2x.png */; };
|
||||
52FAFCD31C30F4DF00C6E613 /* PSMYosemiteTabStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 52FAFCD11C30F4DF00C6E613 /* PSMYosemiteTabStyle.h */; };
|
||||
52FAFCD41C30F4DF00C6E613 /* PSMYosemiteTabStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 52FAFCD21C30F4DF00C6E613 /* PSMYosemiteTabStyle.m */; };
|
||||
546DEAF1067F63070098DCC4 /* PSMTabBarControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 0259C576FE90428111CA0C5A /* PSMTabBarControl.m */; };
|
||||
546DEAF2067F630E0098DCC4 /* PSMTabBarControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 0259C57AFE90428111CA0C5A /* PSMTabBarControl.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
A2082A9009EAEB34009AC8BE /* PSMTabDragAssistant.h in Headers */ = {isa = PBXBuildFile; fileRef = A2082A8D09EAEB33009AC8BE /* PSMTabDragAssistant.h */; };
|
||||
@@ -111,6 +115,10 @@
|
||||
52C0B9B315BDB7A9000C268F /* overflowImagePressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "overflowImagePressed@2x.png"; path = "images/overflowImagePressed@2x.png"; sourceTree = "<group>"; };
|
||||
52C268CE15BDB72B0012FECA /* overflowImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = overflowImage.png; path = images/overflowImage.png; sourceTree = "<group>"; };
|
||||
52C268CF15BDB72B0012FECA /* overflowImagePressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = overflowImagePressed.png; path = images/overflowImagePressed.png; sourceTree = "<group>"; };
|
||||
52FAFCCD1C30F4B500C6E613 /* TabNewYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TabNewYosemite.png; path = images/TabNewYosemite.png; sourceTree = "<group>"; };
|
||||
52FAFCCE1C30F4B500C6E613 /* TabNewYosemite@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TabNewYosemite@2x.png"; path = "images/TabNewYosemite@2x.png"; sourceTree = "<group>"; };
|
||||
52FAFCD11C30F4DF00C6E613 /* PSMYosemiteTabStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PSMYosemiteTabStyle.h; path = source/PSMYosemiteTabStyle.h; sourceTree = "<group>"; };
|
||||
52FAFCD21C30F4DF00C6E613 /* PSMYosemiteTabStyle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PSMYosemiteTabStyle.m; path = source/PSMYosemiteTabStyle.m; sourceTree = "<group>"; };
|
||||
53DF68FD067E5B5A0090B5B0 /* PSMTabBarControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PSMTabBarControl.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
53DF68FE067E5B5A0090B5B0 /* PSMTabBarControlFramework-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PSMTabBarControlFramework-Info.plist"; sourceTree = "<group>"; };
|
||||
54D33B2806778E3300C9C163 /* PSMTabBarControl.ibclassdescription */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PSMTabBarControl.ibclassdescription; sourceTree = "<group>"; };
|
||||
@@ -309,6 +317,8 @@
|
||||
A2D32EFF09A63D7A00EC8662 /* PSMMetalTabStyle.m */,
|
||||
A2D98B070A2B432C0064C6F8 /* PSMUnifiedTabStyle.h */,
|
||||
A2D98B080A2B432C0064C6F8 /* PSMUnifiedTabStyle.m */,
|
||||
52FAFCD11C30F4DF00C6E613 /* PSMYosemiteTabStyle.h */,
|
||||
52FAFCD21C30F4DF00C6E613 /* PSMYosemiteTabStyle.m */,
|
||||
A268EA5F09A9831800E082AA /* PSMRolloverButton.h */,
|
||||
A268EA6009A9831800E082AA /* PSMRolloverButton.m */,
|
||||
A251BE810959A1B90058BC7F /* PSMOverflowPopUpButton.h */,
|
||||
@@ -382,6 +392,8 @@
|
||||
523897EE15BDA9AC00498A53 /* TabClose_Front_Pressed@2x.png */,
|
||||
52A57C0E15BBA230003EC59C /* TabClose_Front_Rollover.png */,
|
||||
523897EF15BDA9AC00498A53 /* TabClose_Front_Rollover@2x.png */,
|
||||
52FAFCCD1C30F4B500C6E613 /* TabNewYosemite.png */,
|
||||
52FAFCCE1C30F4B500C6E613 /* TabNewYosemite@2x.png */,
|
||||
);
|
||||
name = Images;
|
||||
sourceTree = "<group>";
|
||||
@@ -396,6 +408,7 @@
|
||||
546DEAF2067F630E0098DCC4 /* PSMTabBarControl.h in Headers */,
|
||||
A251BE850959A1B90058BC7F /* PSMOverflowPopUpButton.h in Headers */,
|
||||
A251BE870959A1B90058BC7F /* PSMTabBarCell.h in Headers */,
|
||||
52FAFCD31C30F4DF00C6E613 /* PSMYosemiteTabStyle.h in Headers */,
|
||||
A2D32EDC09A634C900EC8662 /* PSMTabStyle.h in Headers */,
|
||||
A2D32F0009A63D7A00EC8662 /* PSMMetalTabStyle.h in Headers */,
|
||||
A268EA6209A9831800E082AA /* PSMRolloverButton.h in Headers */,
|
||||
@@ -478,8 +491,10 @@
|
||||
52A57C0F15BBA230003EC59C /* TabClose_Front.png in Resources */,
|
||||
52A57C1015BBA230003EC59C /* TabClose_Front_Pressed.png in Resources */,
|
||||
52A57C1115BBA230003EC59C /* TabClose_Front_Rollover.png in Resources */,
|
||||
52FAFCCF1C30F4B500C6E613 /* TabNewYosemite.png in Resources */,
|
||||
523897F415BDA9AC00498A53 /* TabClose_Front_Pressed@2x.png in Resources */,
|
||||
523897F515BDA9AC00498A53 /* TabClose_Front_Rollover@2x.png in Resources */,
|
||||
52FAFCD01C30F4B500C6E613 /* TabNewYosemite@2x.png in Resources */,
|
||||
523897F615BDA9AC00498A53 /* TabClose_Front@2x.png in Resources */,
|
||||
523897F715BDA9AC00498A53 /* TabNewMetal@2x.png in Resources */,
|
||||
523897F815BDA9AC00498A53 /* TabNewMetalPressed@2x.png in Resources */,
|
||||
@@ -505,6 +520,7 @@
|
||||
A268EA6309A9831800E082AA /* PSMRolloverButton.m in Sources */,
|
||||
A2129BB309AEB58F00724E6C /* PSMProgressIndicator.m in Sources */,
|
||||
A2082A9109EAEB34009AC8BE /* PSMTabDragAssistant.m in Sources */,
|
||||
52FAFCD41C30F4DF00C6E613 /* PSMYosemiteTabStyle.m in Sources */,
|
||||
A2D98B0B0A2B432C0064C6F8 /* PSMUnifiedTabStyle.m in Sources */,
|
||||
A2D98B130A2B43FA0064C6F8 /* NSBezierPath_AMShading.m in Sources */,
|
||||
);
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -393,12 +393,7 @@ void MyNSDrawWindowBackground(NSRect rect)
|
||||
if ([cell closeButtonPressed]) closeButton = metalCloseButtonDown;
|
||||
|
||||
closeButtonSize = [closeButton size];
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
|
||||
[closeButton drawInRect:closeButtonRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:YES hints:nil];
|
||||
#else
|
||||
[closeButton setFlipped:YES];
|
||||
[closeButton drawAtPoint:closeButtonRect.origin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
|
||||
#endif
|
||||
|
||||
// scoot label over
|
||||
labelPosition += closeButtonSize.width + kPSMTabBarCellPadding;
|
||||
|
||||
@@ -40,15 +40,14 @@
|
||||
}
|
||||
|
||||
NSImage *image = (_down) ? _PSMTabBarOverflowDownPopUpImage : _PSMTabBarOverflowPopUpImage;
|
||||
NSSize imageSize = [image size];
|
||||
rect.origin.x = NSMidX(rect) - (imageSize.width * 0.5);
|
||||
rect.origin.y = NSMidY(rect) - (imageSize.height * 0.5);
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
|
||||
[image drawInRect:rect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:YES hints:nil];
|
||||
#else
|
||||
[image setFlipped:YES];
|
||||
[image drawAtPoint:rect.origin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
|
||||
#endif
|
||||
NSSize imageSize = [image size];
|
||||
NSRect bounds = [self bounds];
|
||||
NSPoint drawPoint = NSMakePoint(NSMidX(bounds) - (imageSize.width * 0.5f),
|
||||
NSMidY(bounds) - (imageSize.height * 0.5f));
|
||||
[image drawAtPoint:drawPoint
|
||||
fromRect:NSZeroRect
|
||||
operation:NSCompositeSourceOver
|
||||
fraction:1.0f];
|
||||
}
|
||||
|
||||
- (void)mouseDown:(NSEvent *)event
|
||||
|
||||
@@ -12,26 +12,18 @@
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#ifndef NSINTEGER_DEFINED
|
||||
// NSInteger was introduced in 10.5
|
||||
# if __LP64__ || NS_BUILD_32_LIKE_64
|
||||
typedef long NSInteger;
|
||||
typedef unsigned long NSUInteger;
|
||||
# else
|
||||
typedef int NSInteger;
|
||||
typedef unsigned int NSUInteger;
|
||||
# endif
|
||||
# define NSINTEGER_DEFINED 1
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
|
||||
# define kPSMTabBarControlHeight 25
|
||||
#else
|
||||
# define kPSMTabBarControlHeight 22
|
||||
#endif
|
||||
|
||||
#ifndef MAC_OS_X_VERSION_10_6
|
||||
# define MAC_OS_X_VERSION_10_6 1060
|
||||
#endif
|
||||
|
||||
#define kPSMTabBarControlHeight 22
|
||||
// internal cell border
|
||||
#define MARGIN_X 6
|
||||
#define MARGIN_Y 3
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10
|
||||
# define MARGIN_Y 5
|
||||
#else
|
||||
# define MARGIN_Y 3
|
||||
#endif
|
||||
// padding between objects
|
||||
#define kPSMTabBarCellPadding 4
|
||||
// fixed size objects
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#import "PSMTabStyle.h"
|
||||
#import "PSMMetalTabStyle.h"
|
||||
#import "PSMUnifiedTabStyle.h"
|
||||
#import "PSMYosemiteTabStyle.h"
|
||||
#import "PSMTabDragAssistant.h"
|
||||
|
||||
@interface PSMTabBarControl (Private)
|
||||
@@ -254,10 +255,11 @@
|
||||
- (void)setStyleNamed:(NSString *)name
|
||||
{
|
||||
[style release];
|
||||
if ([name isEqualToString:@"Unified"]){
|
||||
style = [[PSMUnifiedTabStyle alloc] init];
|
||||
}
|
||||
else {
|
||||
if([name isEqualToString:@"Unified"]){
|
||||
style = [[PSMUnifiedTabStyle alloc] init];
|
||||
} else if([name isEqualToString:@"Yosemite"]){
|
||||
style = [[PSMYosemiteTabStyle alloc] init];
|
||||
} else {
|
||||
style = [[PSMMetalTabStyle alloc] init];
|
||||
}
|
||||
|
||||
|
||||
@@ -389,13 +389,8 @@
|
||||
if ([cell closeButtonPressed]) closeButton = unifiedCloseButtonDown;
|
||||
|
||||
closeButtonSize = [closeButton size];
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6
|
||||
[closeButton drawInRect:closeButtonRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:YES hints:nil];
|
||||
#else
|
||||
[closeButton setFlipped:YES];
|
||||
[closeButton drawAtPoint:closeButtonRect.origin fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
|
||||
#endif
|
||||
|
||||
|
||||
// scoot label over
|
||||
labelPosition += closeButtonSize.width + kPSMTabBarCellPadding;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// PSMYosemiteTabStyle.h
|
||||
// PSMTabBarControl
|
||||
//
|
||||
// Created by Christoffer Winterkvist on 25/08/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "PSMTabStyle.h"
|
||||
|
||||
@interface PSMYosemiteTabStyle : NSObject <PSMTabStyle> {
|
||||
NSImage *closeButton;
|
||||
NSImage *closeButtonDown;
|
||||
NSImage *closeButtonOver;
|
||||
NSImage *_addTabButtonImage;
|
||||
NSImage *_addTabButtonPressedImage;
|
||||
NSImage *_addTabButtonRolloverImage;
|
||||
NSMutableParagraphStyle *truncatingTailParagraphStyle;
|
||||
NSMutableParagraphStyle *centeredParagraphStyle;
|
||||
}
|
||||
|
||||
- (void)drawInteriorWithTabCell:(PSMTabBarCell *)cell inView:(NSView*)controlView;
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)aCoder;
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,498 @@
|
||||
//
|
||||
// PSMYosemiteTabStyle.m
|
||||
// PSMTabBarControl
|
||||
//
|
||||
// Created by Christoffer Winterkvist on 25/08/14.
|
||||
//
|
||||
//
|
||||
|
||||
#import "PSMYosemiteTabStyle.h"
|
||||
|
||||
#define kPSMMetalObjectCounterRadius 7.0
|
||||
#define kPSMMetalCounterMinWidth 20
|
||||
|
||||
void YosemiteNSDrawWindowBackground(NSRect rect, NSColor *color)
|
||||
{
|
||||
[color set];
|
||||
NSRectFill( rect );
|
||||
}
|
||||
|
||||
@implementation PSMYosemiteTabStyle
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[closeButton release];
|
||||
[closeButtonDown release];
|
||||
[closeButtonOver release];
|
||||
[_addTabButtonImage release];
|
||||
[_addTabButtonPressedImage release];
|
||||
[_addTabButtonRolloverImage release];
|
||||
|
||||
[truncatingTailParagraphStyle release];
|
||||
[centeredParagraphStyle release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Initializers
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (!self) return nil;
|
||||
|
||||
closeButton = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabClose_Front"]];
|
||||
//NSLog(@"closeButton=%@ path=%@", metalCloseButton,
|
||||
// [[PSMTabBarControl bundle] pathForImageResource:@"TabClose_Front"]);
|
||||
closeButtonDown = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabClose_Front_Pressed"]];
|
||||
closeButtonOver = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabClose_Front_Rollover"]];
|
||||
|
||||
_addTabButtonImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabNewMetal"]];
|
||||
_addTabButtonPressedImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabNewMetalPressed"]];
|
||||
_addTabButtonRolloverImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"TabNewMetalRollover"]];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)name
|
||||
{
|
||||
return @"Yosemite";
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Control Specific
|
||||
|
||||
- (float)leftMarginForTabBarControl
|
||||
{
|
||||
return -1.0f;
|
||||
}
|
||||
|
||||
- (float)rightMarginForTabBarControl
|
||||
{
|
||||
return 24.0f;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Add Tab Button
|
||||
|
||||
- (NSImage *)addTabButtonImage
|
||||
{
|
||||
return _addTabButtonImage;
|
||||
}
|
||||
|
||||
- (NSImage *)addTabButtonPressedImage
|
||||
{
|
||||
return _addTabButtonPressedImage;
|
||||
}
|
||||
|
||||
- (NSImage *)addTabButtonRolloverImage
|
||||
{
|
||||
return _addTabButtonRolloverImage;
|
||||
}
|
||||
|
||||
- (NSColor *)backgroundColor:(BOOL)isKeyWindow
|
||||
{
|
||||
NSColor *backgroundColor;
|
||||
if (isKeyWindow) {
|
||||
backgroundColor = [NSColor colorWithCalibratedHue:0.000 saturation:0.000 brightness:0.875 alpha:1];
|
||||
} else {
|
||||
backgroundColor = [NSColor colorWithCalibratedHue:0.000 saturation:0.000 brightness:0.957 alpha:1];
|
||||
}
|
||||
|
||||
return backgroundColor;
|
||||
}
|
||||
|
||||
- (NSColor *)borderColor
|
||||
{
|
||||
return [NSColor colorWithCalibratedHue:0.000 saturation:0.000 brightness:0.678 alpha:1];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Cell Specific
|
||||
|
||||
- (NSRect) closeButtonRectForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
|
||||
if ([cell hasCloseButton] == NO) {
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
NSRect result;
|
||||
result.size = [closeButton size];
|
||||
result.origin.x = cellFrame.origin.x + MARGIN_X;
|
||||
result.origin.y = cellFrame.origin.y + MARGIN_Y + 2.0;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSRect)iconRectForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
|
||||
if ([cell hasIcon] == NO) {
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
NSRect result;
|
||||
result.size = NSMakeSize(kPSMTabBarIconWidth, kPSMTabBarIconWidth);
|
||||
result.origin.x = cellFrame.origin.x + MARGIN_X;
|
||||
result.origin.y = cellFrame.origin.y + MARGIN_Y;
|
||||
|
||||
if([cell hasCloseButton] && ![cell isCloseButtonSuppressed])
|
||||
result.origin.x += [closeButton size].width + kPSMTabBarCellPadding;
|
||||
|
||||
if([cell state] == NSOnState){
|
||||
result.origin.y += 1;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSRect)indicatorRectForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
|
||||
if ([[cell indicator] isHidden]) {
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
NSRect result;
|
||||
result.size = NSMakeSize(kPSMTabBarIndicatorWidth, kPSMTabBarIndicatorWidth);
|
||||
result.origin.x = cellFrame.origin.x + cellFrame.size.width - MARGIN_X - kPSMTabBarIndicatorWidth;
|
||||
result.origin.y = cellFrame.origin.y + MARGIN_Y;
|
||||
|
||||
if([cell state] == NSOnState){
|
||||
result.origin.y -= 1;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSRect)objectCounterRectForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
|
||||
if ([cell count] == 0) {
|
||||
return NSZeroRect;
|
||||
}
|
||||
|
||||
float countWidth = [[self attributedObjectCountValueForTabCell:cell] size].width;
|
||||
countWidth += (2 * kPSMMetalObjectCounterRadius - 6.0);
|
||||
if(countWidth < kPSMMetalCounterMinWidth)
|
||||
countWidth = kPSMMetalCounterMinWidth;
|
||||
|
||||
NSRect result;
|
||||
result.size = NSMakeSize(countWidth, 2 * kPSMMetalObjectCounterRadius); // temp
|
||||
result.origin.x = cellFrame.origin.x + cellFrame.size.width - MARGIN_X - result.size.width;
|
||||
result.origin.y = cellFrame.origin.y + MARGIN_Y + 1.0;
|
||||
|
||||
if(![[cell indicator] isHidden])
|
||||
result.origin.x -= kPSMTabBarIndicatorWidth + kPSMTabBarCellPadding;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
- (float)minimumWidthOfTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
float resultWidth = 0.0;
|
||||
|
||||
// left margin
|
||||
resultWidth = MARGIN_X;
|
||||
|
||||
// close button?
|
||||
if([cell hasCloseButton] && ![cell isCloseButtonSuppressed])
|
||||
resultWidth += [closeButton size].width + kPSMTabBarCellPadding;
|
||||
|
||||
// icon?
|
||||
if([cell hasIcon])
|
||||
resultWidth += kPSMTabBarIconWidth + kPSMTabBarCellPadding;
|
||||
|
||||
// the label
|
||||
resultWidth += kPSMMinimumTitleWidth;
|
||||
|
||||
// object counter?
|
||||
if([cell count] > 0)
|
||||
resultWidth += [self objectCounterRectForTabCell:cell].size.width + kPSMTabBarCellPadding;
|
||||
|
||||
// indicator?
|
||||
if ([[cell indicator] isHidden] == NO)
|
||||
resultWidth += kPSMTabBarCellPadding + kPSMTabBarIndicatorWidth;
|
||||
|
||||
// right margin
|
||||
resultWidth += MARGIN_X;
|
||||
|
||||
return ceil(resultWidth);
|
||||
}
|
||||
|
||||
- (float)desiredWidthOfTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
float resultWidth = 0.0;
|
||||
|
||||
// left margin
|
||||
resultWidth = MARGIN_X;
|
||||
|
||||
// close button?
|
||||
if ([cell hasCloseButton] && ![cell isCloseButtonSuppressed])
|
||||
resultWidth += [closeButton size].width + kPSMTabBarCellPadding;
|
||||
|
||||
// icon?
|
||||
if([cell hasIcon])
|
||||
resultWidth += kPSMTabBarIconWidth + kPSMTabBarCellPadding;
|
||||
|
||||
// the label
|
||||
resultWidth += [[cell attributedStringValue] size].width;
|
||||
|
||||
// object counter?
|
||||
if([cell count] > 0)
|
||||
resultWidth += [self objectCounterRectForTabCell:cell].size.width + kPSMTabBarCellPadding;
|
||||
|
||||
// indicator?
|
||||
if ([[cell indicator] isHidden] == NO)
|
||||
resultWidth += kPSMTabBarCellPadding + kPSMTabBarIndicatorWidth;
|
||||
|
||||
// right margin
|
||||
resultWidth += MARGIN_X;
|
||||
|
||||
return ceil(resultWidth);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Cell Values
|
||||
|
||||
- (NSAttributedString *)attributedObjectCountValueForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSMutableAttributedString *attrStr;
|
||||
NSFontManager *fm = [NSFontManager sharedFontManager];
|
||||
NSNumberFormatter *nf = [[[NSNumberFormatter alloc] init] autorelease];
|
||||
[nf setLocalizesFormat:YES];
|
||||
[nf setFormat:@"0"];
|
||||
[nf setHasThousandSeparators:YES];
|
||||
NSString *contents = [nf stringFromNumber:[NSNumber numberWithInt:[cell count]]];
|
||||
attrStr = [[[NSMutableAttributedString alloc] initWithString:contents] autorelease];
|
||||
NSRange range = NSMakeRange(0, [contents length]);
|
||||
|
||||
// Add font attribute
|
||||
[attrStr addAttribute:NSFontAttributeName value:[fm convertFont:[NSFont fontWithName:@"Helvetica" size:11.0] toHaveTrait:NSBoldFontMask] range:range];
|
||||
[attrStr addAttribute:NSForegroundColorAttributeName value:[[NSColor whiteColor] colorWithAlphaComponent:0.85] range:range];
|
||||
|
||||
return attrStr;
|
||||
}
|
||||
|
||||
- (NSAttributedString *)attributedStringValueForTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSMutableAttributedString *attrStr;
|
||||
NSString *contents = [cell stringValue];
|
||||
attrStr = [[[NSMutableAttributedString alloc] initWithString:contents] autorelease];
|
||||
NSRange range = NSMakeRange(0, [contents length]);
|
||||
|
||||
// Add font attribute
|
||||
[attrStr addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range];
|
||||
|
||||
PSMTabBarControl *bar = (PSMTabBarControl *)cell.controlView;
|
||||
BOOL isKeyWindow = [bar.window isKeyWindow];
|
||||
|
||||
CGFloat textAlpha;
|
||||
if ([cell state] == NSOnState) {
|
||||
textAlpha = (isKeyWindow) ? 1.0f : 0.5f;
|
||||
} else {
|
||||
textAlpha = (isKeyWindow) ? 0.5f : 0.25f;
|
||||
}
|
||||
NSColor *textColor = [[NSColor textColor] colorWithAlphaComponent:textAlpha];
|
||||
|
||||
[attrStr addAttribute:NSForegroundColorAttributeName value:textColor range:range];
|
||||
|
||||
// Paragraph Style for Truncating Long Text
|
||||
if (!truncatingTailParagraphStyle) {
|
||||
truncatingTailParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain];
|
||||
[truncatingTailParagraphStyle setLineBreakMode:NSLineBreakByTruncatingHead];
|
||||
[truncatingTailParagraphStyle setAlignment:NSCenterTextAlignment];
|
||||
}
|
||||
[attrStr addAttribute:NSParagraphStyleAttributeName value:truncatingTailParagraphStyle range:range];
|
||||
|
||||
return attrStr;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark ---- drawing ----
|
||||
|
||||
- (void)drawTabCell:(PSMTabBarCell *)cell
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
NSColor * lineColor = nil;
|
||||
NSBezierPath* bezier = [NSBezierPath bezierPath];
|
||||
lineColor = [self borderColor];
|
||||
|
||||
if ([cell state] == NSOnState) {
|
||||
// selected tab
|
||||
NSRect aRect = NSMakeRect(cellFrame.origin.x, cellFrame.origin.y, cellFrame.size.width, cellFrame.size.height);
|
||||
|
||||
PSMTabBarControl *bar = (PSMTabBarControl *)cell.controlView;
|
||||
BOOL isKeyWindow = [bar.window isKeyWindow];
|
||||
|
||||
// background
|
||||
YosemiteNSDrawWindowBackground(aRect, [self backgroundColor:isKeyWindow]);
|
||||
|
||||
aRect.size.height -= 1.0f;
|
||||
aRect.origin.y += 0.5f;
|
||||
// frame
|
||||
[lineColor set];
|
||||
[bezier moveToPoint:NSMakePoint(aRect.origin.x, aRect.origin.y)];
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x, aRect.origin.y+aRect.size.height)];
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x+aRect.size.width, aRect.origin.y+aRect.size.height)];
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x+aRect.size.width, aRect.origin.y)];
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x, aRect.origin.y)];
|
||||
[bezier stroke];
|
||||
} else {
|
||||
|
||||
// unselected tab
|
||||
NSRect aRect = NSMakeRect(cellFrame.origin.x, cellFrame.origin.y, cellFrame.size.width, cellFrame.size.height);
|
||||
|
||||
aRect.origin.x += 0.5;
|
||||
|
||||
[[NSColor colorWithCalibratedWhite:0.0 alpha:0.1] set];
|
||||
NSRectFillUsingOperation(aRect, NSCompositeSourceAtop);
|
||||
|
||||
// frame
|
||||
[lineColor set];
|
||||
[bezier moveToPoint:NSMakePoint(aRect.origin.x, aRect.origin.y)];
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x + aRect.size.width, aRect.origin.y)];
|
||||
if(!([cell tabState] & PSMTab_RightIsSelectedMask)){
|
||||
[bezier lineToPoint:NSMakePoint(aRect.origin.x + aRect.size.width, aRect.origin.y + aRect.size.height)];
|
||||
}
|
||||
[bezier stroke];
|
||||
}
|
||||
|
||||
[self drawInteriorWithTabCell:cell inView:[cell controlView]];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)drawInteriorWithTabCell:(PSMTabBarCell *)cell inView:(NSView*)controlView
|
||||
{
|
||||
NSRect cellFrame = [cell frame];
|
||||
float labelPosition = cellFrame.origin.x + MARGIN_X;
|
||||
|
||||
// close button
|
||||
if ([cell hasCloseButton] && ![cell isCloseButtonSuppressed]) {
|
||||
NSSize closeButtonSize = NSZeroSize;
|
||||
NSRect closeButtonRect = [cell closeButtonRectForFrame:cellFrame];
|
||||
NSImage *button = nil;
|
||||
|
||||
if ([cell closeButtonOver]) button = closeButtonOver;
|
||||
if ([cell closeButtonPressed]) button = closeButtonDown;
|
||||
|
||||
closeButtonSize = [button size];
|
||||
[button drawInRect:closeButtonRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0 respectFlipped:YES hints:nil];
|
||||
}
|
||||
|
||||
// object counter
|
||||
if([cell count] > 0){
|
||||
[[NSColor colorWithCalibratedWhite:0.3 alpha:0.6] set];
|
||||
NSBezierPath *path = [NSBezierPath bezierPath];
|
||||
NSRect myRect = [self objectCounterRectForTabCell:cell];
|
||||
[path moveToPoint:NSMakePoint(myRect.origin.x + kPSMMetalObjectCounterRadius, myRect.origin.y)];
|
||||
[path lineToPoint:NSMakePoint(myRect.origin.x + myRect.size.width - kPSMMetalObjectCounterRadius, myRect.origin.y)];
|
||||
[path appendBezierPathWithArcWithCenter:NSMakePoint(myRect.origin.x + myRect.size.width - kPSMMetalObjectCounterRadius, myRect.origin.y + kPSMMetalObjectCounterRadius) radius:kPSMMetalObjectCounterRadius startAngle:270.0 endAngle:90.0];
|
||||
[path lineToPoint:NSMakePoint(myRect.origin.x + kPSMMetalObjectCounterRadius, myRect.origin.y + myRect.size.height)];
|
||||
[path appendBezierPathWithArcWithCenter:NSMakePoint(myRect.origin.x + kPSMMetalObjectCounterRadius, myRect.origin.y + kPSMMetalObjectCounterRadius) radius:kPSMMetalObjectCounterRadius startAngle:90.0 endAngle:270.0];
|
||||
[path fill];
|
||||
|
||||
// draw attributed string centered in area
|
||||
NSRect counterStringRect;
|
||||
NSAttributedString *counterString = [self attributedObjectCountValueForTabCell:cell];
|
||||
counterStringRect.size = [counterString size];
|
||||
counterStringRect.origin.x = myRect.origin.x + ((myRect.size.width - counterStringRect.size.width) / 2.0) + 0.25;
|
||||
counterStringRect.origin.y = myRect.origin.y + ((myRect.size.height - counterStringRect.size.height) / 2.0) + 0.5;
|
||||
[counterString drawInRect:counterStringRect];
|
||||
}
|
||||
|
||||
// label rect
|
||||
NSRect labelRect;
|
||||
labelRect.origin.x = labelPosition;
|
||||
labelRect.size.width = cellFrame.size.width - (labelRect.origin.x - cellFrame.origin.x) - kPSMTabBarCellPadding;
|
||||
labelRect.size.height = cellFrame.size.height;
|
||||
labelRect.origin.y = cellFrame.origin.y + MARGIN_Y + 1.0;
|
||||
|
||||
if(![[cell indicator] isHidden])
|
||||
labelRect.size.width -= (kPSMTabBarIndicatorWidth + kPSMTabBarCellPadding);
|
||||
|
||||
if([cell count] > 0)
|
||||
labelRect.size.width -= ([self objectCounterRectForTabCell:cell].size.width + kPSMTabBarCellPadding);
|
||||
|
||||
// label
|
||||
[[cell attributedStringValue] drawInRect:labelRect];
|
||||
}
|
||||
|
||||
- (void)drawTabBar:(PSMTabBarControl *)bar inRect:(NSRect)rect
|
||||
{
|
||||
BOOL isKeyWindow = [bar.window isKeyWindow];
|
||||
YosemiteNSDrawWindowBackground(rect, [self backgroundColor:isKeyWindow]);
|
||||
|
||||
[[NSColor colorWithCalibratedWhite:0.0 alpha:0.0] set];
|
||||
NSRectFillUsingOperation(rect, NSCompositeSourceAtop);
|
||||
[[self borderColor] set];
|
||||
[NSBezierPath strokeLineFromPoint:NSMakePoint(rect.origin.x,rect.origin.y+0.5) toPoint:NSMakePoint(rect.origin.x+rect.size.width,rect.origin.y+0.5)];
|
||||
[NSBezierPath strokeLineFromPoint:NSMakePoint(rect.origin.x,rect.origin.y+rect.size.height-0.5) toPoint:NSMakePoint(rect.origin.x+rect.size.width,rect.origin.y+rect.size.height-0.5)];
|
||||
|
||||
// no tab view == not connected
|
||||
if(![bar tabView]){
|
||||
NSRect labelRect = rect;
|
||||
labelRect.size.height -= 4.0;
|
||||
labelRect.origin.y += 4.0;
|
||||
NSMutableAttributedString *attrStr;
|
||||
NSString *contents = @"PSMTabBarControl";
|
||||
attrStr = [[[NSMutableAttributedString alloc] initWithString:contents] autorelease];
|
||||
NSRange range = NSMakeRange(0, [contents length]);
|
||||
[attrStr addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:11.0] range:range];
|
||||
if (!centeredParagraphStyle) {
|
||||
centeredParagraphStyle = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain];
|
||||
[centeredParagraphStyle setAlignment:NSCenterTextAlignment];
|
||||
}
|
||||
[attrStr addAttribute:NSParagraphStyleAttributeName value:centeredParagraphStyle range:range];
|
||||
[attrStr drawInRect:labelRect];
|
||||
return;
|
||||
}
|
||||
|
||||
// draw cells
|
||||
NSEnumerator *e = [[bar cells] objectEnumerator];
|
||||
PSMTabBarCell *cell;
|
||||
while(cell = [e nextObject]){
|
||||
if(![cell isInOverflowMenu]){
|
||||
[cell drawWithFrame:[cell frame] inView:bar];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Archiving
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)aCoder
|
||||
{
|
||||
if ([aCoder allowsKeyedCoding]) {
|
||||
[aCoder encodeObject:closeButton forKey:@"metalCloseButton"];
|
||||
[aCoder encodeObject:closeButtonDown forKey:@"metalCloseButtonDown"];
|
||||
[aCoder encodeObject:closeButtonOver forKey:@"metalCloseButtonOver"];
|
||||
[aCoder encodeObject:_addTabButtonImage forKey:@"addTabButtonImage"];
|
||||
[aCoder encodeObject:_addTabButtonPressedImage forKey:@"addTabButtonPressedImage"];
|
||||
[aCoder encodeObject:_addTabButtonRolloverImage forKey:@"addTabButtonRolloverImage"];
|
||||
}
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
if ([aDecoder allowsKeyedCoding]) {
|
||||
closeButton = [[aDecoder decodeObjectForKey:@"metalCloseButton"] retain];
|
||||
closeButtonDown = [[aDecoder decodeObjectForKey:@"metalCloseButtonDown"] retain];
|
||||
closeButtonOver = [[aDecoder decodeObjectForKey:@"metalCloseButtonOver"] retain];
|
||||
_addTabButtonImage = [[aDecoder decodeObjectForKey:@"addTabButtonImage"] retain];
|
||||
_addTabButtonPressedImage = [[aDecoder decodeObjectForKey:@"addTabButtonPressedImage"] retain];
|
||||
_addTabButtonRolloverImage = [[aDecoder decodeObjectForKey:@"addTabButtonRolloverImage"] retain];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1 +0,0 @@
|
||||
Versions/Current/Headers
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// SUAppcast.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/12/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SUAPPCAST_H
|
||||
#define SUAPPCAST_H
|
||||
|
||||
@class SUAppcastItem;
|
||||
@interface SUAppcast : NSObject {
|
||||
NSArray *items;
|
||||
NSString *userAgentString;
|
||||
id delegate;
|
||||
NSMutableData *incrementalData;
|
||||
}
|
||||
|
||||
- (void)fetchAppcastFromURL:(NSURL *)url;
|
||||
- (void)setDelegate:delegate;
|
||||
- (void)setUserAgentString:(NSString *)userAgentString;
|
||||
|
||||
- (NSArray *)items;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (SUAppcastDelegate)
|
||||
- (void)appcastDidFinishLoading:(SUAppcast *)appcast;
|
||||
- (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error;
|
||||
@end
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// SUAppcastItem.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/12/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SUAPPCASTITEM_H
|
||||
#define SUAPPCASTITEM_H
|
||||
|
||||
@interface SUAppcastItem : NSObject {
|
||||
NSString *title;
|
||||
NSDate *date;
|
||||
NSString *itemDescription;
|
||||
|
||||
NSURL *releaseNotesURL;
|
||||
|
||||
NSString *DSASignature;
|
||||
NSString *minimumSystemVersion;
|
||||
|
||||
NSURL *fileURL;
|
||||
NSString *versionString;
|
||||
NSString *displayVersionString;
|
||||
|
||||
NSDictionary *propertiesDictionary;
|
||||
}
|
||||
|
||||
// Initializes with data from a dictionary provided by the RSS class.
|
||||
- initWithDictionary:(NSDictionary *)dict;
|
||||
|
||||
- (NSString *)title;
|
||||
- (NSString *)versionString;
|
||||
- (NSString *)displayVersionString;
|
||||
- (NSDate *)date;
|
||||
- (NSString *)itemDescription;
|
||||
- (NSURL *)releaseNotesURL;
|
||||
- (NSURL *)fileURL;
|
||||
- (NSString *)DSASignature;
|
||||
- (NSString *)minimumSystemVersion;
|
||||
|
||||
// Returns the dictionary provided in initWithDictionary; this might be useful later for extensions.
|
||||
- (NSDictionary *)propertiesDictionary;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,118 @@
|
||||
//
|
||||
// SUUpdater.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 1/4/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SUUPDATER_H
|
||||
#define SUUPDATER_H
|
||||
|
||||
#import <Sparkle/SUVersionComparisonProtocol.h>
|
||||
|
||||
@class SUUpdateDriver, SUAppcastItem, SUHost, SUAppcast;
|
||||
@interface SUUpdater : NSObject {
|
||||
NSTimer *checkTimer;
|
||||
SUUpdateDriver *driver;
|
||||
|
||||
SUHost *host;
|
||||
IBOutlet id delegate;
|
||||
}
|
||||
|
||||
+ (SUUpdater *)sharedUpdater;
|
||||
+ (SUUpdater *)updaterForBundle:(NSBundle *)bundle;
|
||||
- (NSBundle *)hostBundle;
|
||||
|
||||
- (void)setDelegate:(id)delegate;
|
||||
- delegate;
|
||||
|
||||
- (void)setAutomaticallyChecksForUpdates:(BOOL)automaticallyChecks;
|
||||
- (BOOL)automaticallyChecksForUpdates;
|
||||
|
||||
- (void)setUpdateCheckInterval:(NSTimeInterval)interval;
|
||||
- (NSTimeInterval)updateCheckInterval;
|
||||
|
||||
- (void)setFeedURL:(NSURL *)feedURL;
|
||||
- (NSURL *)feedURL;
|
||||
|
||||
- (void)setSendsSystemProfile:(BOOL)sendsSystemProfile;
|
||||
- (BOOL)sendsSystemProfile;
|
||||
|
||||
- (void)setAutomaticallyDownloadsUpdates:(BOOL)automaticallyDownloadsUpdates;
|
||||
- (BOOL)automaticallyDownloadsUpdates;
|
||||
|
||||
// This IBAction is meant for a main menu item. Hook up any menu item to this action,
|
||||
// and Sparkle will check for updates and report back its findings verbosely.
|
||||
- (IBAction)checkForUpdates:sender;
|
||||
|
||||
// This kicks off an update meant to be programmatically initiated. That is, it will display no UI unless it actually finds an update,
|
||||
// in which case it proceeds as usual. If the fully automated updating is turned on, however, this will invoke that behavior, and if an
|
||||
// update is found, it will be downloaded and prepped for installation.
|
||||
- (void)checkForUpdatesInBackground;
|
||||
|
||||
// Date of last update check. Returns null if no check has been performed.
|
||||
- (NSDate*)lastUpdateCheckDate;
|
||||
|
||||
// This begins a "probing" check for updates which will not actually offer to update to that version. The delegate methods, though,
|
||||
// (up to updater:didFindValidUpdate: and updaterDidNotFindUpdate:), are called, so you can use that information in your UI.
|
||||
- (void)checkForUpdateInformation;
|
||||
|
||||
// Call this to appropriately schedule or cancel the update checking timer according to the preferences for time interval and automatic checks. This call does not change the date of the next check, but only the internal NSTimer.
|
||||
- (void)resetUpdateCycle;
|
||||
|
||||
- (BOOL)updateInProgress;
|
||||
@end
|
||||
|
||||
@interface NSObject (SUUpdaterDelegateInformalProtocol)
|
||||
// This method allows you to add extra parameters to the appcast URL, potentially based on whether or not Sparkle will also be sending along the system profile. This method should return an array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user.
|
||||
- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile;
|
||||
|
||||
// Use this to override the default behavior for Sparkle prompting the user about automatic update checks.
|
||||
- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)bundle;
|
||||
|
||||
// Implement this if you want to do some special handling with the appcast once it finishes loading.
|
||||
- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast;
|
||||
|
||||
// If you're using special logic or extensions in your appcast, implement this to use your own logic for finding
|
||||
// a valid update, if any, in the given appcast.
|
||||
- (SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)bundle;
|
||||
|
||||
// Sent when a valid update is found by the update driver.
|
||||
- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update;
|
||||
|
||||
// Sent when a valid update is not found.
|
||||
- (void)updaterDidNotFindUpdate:(SUUpdater *)update;
|
||||
|
||||
// Sent immediately before installing the specified update.
|
||||
- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update;
|
||||
|
||||
// Return YES to delay the relaunch until you do some processing; invoke the given NSInvocation to continue.
|
||||
- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)update untilInvoking:(NSInvocation *)invocation;
|
||||
|
||||
// Called immediately before relaunching.
|
||||
- (void)updaterWillRelaunchApplication:(SUUpdater *)updater;
|
||||
|
||||
// This method allows you to provide a custom version comparator.
|
||||
// If you don't implement this method or return nil, the standard version comparator will be used.
|
||||
- (id <SUVersionComparison>)versionComparatorForUpdater:(SUUpdater *)updater;
|
||||
|
||||
// Returns the path which is used to relaunch the client after the update is installed. By default, the path of the host bundle.
|
||||
- (NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater;
|
||||
|
||||
@end
|
||||
|
||||
// Define some minimum intervals to avoid DOS-like checking attacks. These are in seconds.
|
||||
#ifdef DEBUG
|
||||
#define SU_MIN_CHECK_INTERVAL 60
|
||||
#else
|
||||
#define SU_MIN_CHECK_INTERVAL 60*60
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define SU_DEFAULT_CHECK_INTERVAL 60
|
||||
#else
|
||||
#define SU_DEFAULT_CHECK_INTERVAL 60*60*24
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// SUVersionComparisonProtocol.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 12/21/07.
|
||||
// Copyright 2007 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SUVERSIONCOMPARISONPROTOCOL_H
|
||||
#define SUVERSIONCOMPARISONPROTOCOL_H
|
||||
|
||||
/*!
|
||||
@protocol
|
||||
@abstract Implement this protocol to provide version comparison facilities for Sparkle.
|
||||
*/
|
||||
@protocol SUVersionComparison
|
||||
|
||||
/*!
|
||||
@method
|
||||
@abstract An abstract method to compare two version strings.
|
||||
@discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent.
|
||||
*/
|
||||
- (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// Sparkle.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07)
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SPARKLE_H
|
||||
#define SPARKLE_H
|
||||
|
||||
// This list should include the shared headers. It doesn't matter if some of them aren't shared (unless
|
||||
// there are name-space collisions) so we can list all of them to start with:
|
||||
|
||||
#import <Sparkle/SUUpdater.h>
|
||||
|
||||
#import <Sparkle/SUAppcast.h>
|
||||
#import <Sparkle/SUAppcastItem.h>
|
||||
#import <Sparkle/SUVersionComparisonProtocol.h>
|
||||
|
||||
#endif
|
||||
@@ -1 +0,0 @@
|
||||
Versions/Current/Resources
|
||||
@@ -0,0 +1,24 @@
|
||||
<?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>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Sparkle</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.andymatuschak.Sparkle</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Sparkle</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.5 Beta 6</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>313</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,7 @@
|
||||
Copyright (c) 2006 Andy Matuschak
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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>ADP2,1</key>
|
||||
<string>Developer Transition Kit</string>
|
||||
<key>MacBook1,1</key>
|
||||
<string>MacBook (Core Duo)</string>
|
||||
<key>MacBook2,1</key>
|
||||
<string>MacBook (Core 2 Duo)</string>
|
||||
<key>MacBook4,1</key>
|
||||
<string>MacBook (Core 2 Duo Feb 2008)</string>
|
||||
<key>MacBookAir1,1</key>
|
||||
<string>MacBook Air (January 2008)</string>
|
||||
<key>MacBookPro1,1</key>
|
||||
<string>MacBook Pro Core Duo (15-inch)</string>
|
||||
<key>MacBookPro1,2</key>
|
||||
<string>MacBook Pro Core Duo (17-inch)</string>
|
||||
<key>MacBookPro2,1</key>
|
||||
<string>MacBook Pro Core 2 Duo (17-inch)</string>
|
||||
<key>MacBookPro2,2</key>
|
||||
<string>MacBook Pro Core 2 Duo (15-inch)</string>
|
||||
<key>MacBookPro3,1</key>
|
||||
<string>MacBook Pro Core 2 Duo (15-inch LED, Core 2 Duo)</string>
|
||||
<key>MacBookPro3,2</key>
|
||||
<string>MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo)</string>
|
||||
<key>MacBookPro4,1</key>
|
||||
<string>MacBook Pro (Core 2 Duo Feb 2008)</string>
|
||||
<key>MacPro1,1</key>
|
||||
<string>Mac Pro (four-core)</string>
|
||||
<key>MacPro2,1</key>
|
||||
<string>Mac Pro (eight-core)</string>
|
||||
<key>MacPro3,1</key>
|
||||
<string>Mac Pro (January 2008 4- or 8- core "Harpertown")</string>
|
||||
<key>Macmini1,1</key>
|
||||
<string>Mac Mini (Core Solo/Duo)</string>
|
||||
<key>PowerBook1,1</key>
|
||||
<string>PowerBook G3</string>
|
||||
<key>PowerBook2,1</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook2,2</key>
|
||||
<string>iBook G3 (FireWire)</string>
|
||||
<key>PowerBook2,3</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook2,4</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook3,1</key>
|
||||
<string>PowerBook G3 (FireWire)</string>
|
||||
<key>PowerBook3,2</key>
|
||||
<string>PowerBook G4</string>
|
||||
<key>PowerBook3,3</key>
|
||||
<string>PowerBook G4 (Gigabit Ethernet)</string>
|
||||
<key>PowerBook3,4</key>
|
||||
<string>PowerBook G4 (DVI)</string>
|
||||
<key>PowerBook3,5</key>
|
||||
<string>PowerBook G4 (1GHz / 867MHz)</string>
|
||||
<key>PowerBook4,1</key>
|
||||
<string>iBook G3 (Dual USB, Late 2001)</string>
|
||||
<key>PowerBook4,2</key>
|
||||
<string>iBook G3 (16MB VRAM)</string>
|
||||
<key>PowerBook4,3</key>
|
||||
<string>iBook G3 Opaque 16MB VRAM, 32MB VRAM, Early 2003)</string>
|
||||
<key>PowerBook5,1</key>
|
||||
<string>PowerBook G4 (17 inch)</string>
|
||||
<key>PowerBook5,2</key>
|
||||
<string>PowerBook G4 (15 inch FW 800)</string>
|
||||
<key>PowerBook5,3</key>
|
||||
<string>PowerBook G4 (17-inch 1.33GHz)</string>
|
||||
<key>PowerBook5,4</key>
|
||||
<string>PowerBook G4 (15 inch 1.5/1.33GHz)</string>
|
||||
<key>PowerBook5,5</key>
|
||||
<string>PowerBook G4 (17-inch 1.5GHz)</string>
|
||||
<key>PowerBook5,6</key>
|
||||
<string>PowerBook G4 (15 inch 1.67GHz/1.5GHz)</string>
|
||||
<key>PowerBook5,7</key>
|
||||
<string>PowerBook G4 (17-inch 1.67GHz)</string>
|
||||
<key>PowerBook5,8</key>
|
||||
<string>PowerBook G4 (Double layer SD, 15 inch)</string>
|
||||
<key>PowerBook5,9</key>
|
||||
<string>PowerBook G4 (Double layer SD, 17 inch)</string>
|
||||
<key>PowerBook6,1</key>
|
||||
<string>PowerBook G4 (12 inch)</string>
|
||||
<key>PowerBook6,2</key>
|
||||
<string>PowerBook G4 (12 inch, DVI)</string>
|
||||
<key>PowerBook6,3</key>
|
||||
<string>iBook G4</string>
|
||||
<key>PowerBook6,4</key>
|
||||
<string>PowerBook G4 (12 inch 1.33GHz)</string>
|
||||
<key>PowerBook6,5</key>
|
||||
<string>iBook G4 (Early-Late 2004)</string>
|
||||
<key>PowerBook6,7</key>
|
||||
<string>iBook G4 (Mid 2005)</string>
|
||||
<key>PowerBook6,8</key>
|
||||
<string>PowerBook G4 (12 inch 1.5GHz)</string>
|
||||
<key>PowerMac1,1</key>
|
||||
<string>Power Macintosh G3 (Blue & White)</string>
|
||||
<key>PowerMac1,2</key>
|
||||
<string>Power Macintosh G4 (PCI Graphics)</string>
|
||||
<key>PowerMac10,1</key>
|
||||
<string>Mac Mini G4</string>
|
||||
<key>PowerMac10,2</key>
|
||||
<string>Mac Mini (Late 2005)</string>
|
||||
<key>PowerMac11,2</key>
|
||||
<string>Power Macintosh G5 (Late 2005)</string>
|
||||
<key>PowerMac12,1</key>
|
||||
<string>iMac G5 (iSight)</string>
|
||||
<key>PowerMac2,1</key>
|
||||
<string>iMac G3 (Slot-loading CD-ROM)</string>
|
||||
<key>PowerMac2,2</key>
|
||||
<string>iMac G3 (Summer 2000)</string>
|
||||
<key>PowerMac3,1</key>
|
||||
<string>Power Macintosh G4 (AGP Graphics)</string>
|
||||
<key>PowerMac3,2</key>
|
||||
<string>Power Macintosh G4 (AGP Graphics)</string>
|
||||
<key>PowerMac3,3</key>
|
||||
<string>Power Macintosh G4 (Gigabit Ethernet)</string>
|
||||
<key>PowerMac3,4</key>
|
||||
<string>Power Macintosh G4 (Digital Audio)</string>
|
||||
<key>PowerMac3,5</key>
|
||||
<string>Power Macintosh G4 (Quick Silver)</string>
|
||||
<key>PowerMac3,6</key>
|
||||
<string>Power Macintosh G4 (Mirrored Drive Door)</string>
|
||||
<key>PowerMac4,1</key>
|
||||
<string>iMac G3 (Early/Summer 2001)</string>
|
||||
<key>PowerMac4,2</key>
|
||||
<string>iMac G4 (Flat Panel)</string>
|
||||
<key>PowerMac4,4</key>
|
||||
<string>eMac</string>
|
||||
<key>PowerMac4,5</key>
|
||||
<string>iMac G4 (17-inch Flat Panel)</string>
|
||||
<key>PowerMac5,1</key>
|
||||
<string>Power Macintosh G4 Cube</string>
|
||||
<key>PowerMac6,1</key>
|
||||
<string>iMac G4 (USB 2.0)</string>
|
||||
<key>PowerMac6,3</key>
|
||||
<string>iMac G4 (20-inch Flat Panel)</string>
|
||||
<key>PowerMac6,4</key>
|
||||
<string>eMac (USB 2.0, 2005)</string>
|
||||
<key>PowerMac7,2</key>
|
||||
<string>Power Macintosh G5</string>
|
||||
<key>PowerMac7,3</key>
|
||||
<string>Power Macintosh G5</string>
|
||||
<key>PowerMac8,1</key>
|
||||
<string>iMac G5</string>
|
||||
<key>PowerMac8,2</key>
|
||||
<string>iMac G5 (Ambient Light Sensor)</string>
|
||||
<key>PowerMac9,1</key>
|
||||
<string>Power Macintosh G5 (Late 2005)</string>
|
||||
<key>RackMac1,1</key>
|
||||
<string>Xserve G4</string>
|
||||
<key>RackMac1,2</key>
|
||||
<string>Xserve G4 (slot-loading, cluster node)</string>
|
||||
<key>RackMac3,1</key>
|
||||
<string>Xserve G5</string>
|
||||
<key>Xserve1,1</key>
|
||||
<string>Xserve (Intel Xeon)</string>
|
||||
<key>Xserve2,1</key>
|
||||
<string>Xserve (January 2008 quad-core)</string>
|
||||
<key>iMac1,1</key>
|
||||
<string>iMac G3 (Rev A-D)</string>
|
||||
<key>iMac4,1</key>
|
||||
<string>iMac (Core Duo)</string>
|
||||
<key>iMac4,2</key>
|
||||
<string>iMac for Education (17-inch, Core Duo)</string>
|
||||
<key>iMac5,1</key>
|
||||
<string>iMac (Core 2 Duo, 17 or 20 inch, SuperDrive)</string>
|
||||
<key>iMac5,2</key>
|
||||
<string>iMac (Core 2 Duo, 17 inch, Combo Drive)</string>
|
||||
<key>iMac6,1</key>
|
||||
<string>iMac (Core 2 Duo, 24 inch, SuperDrive)</string>
|
||||
<key>iMac8,1</key>
|
||||
<string>iMac (April 2008)</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSResponder</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUStatusController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>actionButton</key>
|
||||
<string>NSButton</string>
|
||||
<key>progressBar</key>
|
||||
<string>NSProgressIndicator</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>670</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>6</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>10A96</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
+50
@@ -0,0 +1,50 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>doNotInstall</key>
|
||||
<string>id</string>
|
||||
<key>installLater</key>
|
||||
<string>id</string>
|
||||
<key>installNow</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUAutomaticUpdateAlert</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>658</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>6</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>9C7010</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Generated
BIN
Binary file not shown.
+67
@@ -0,0 +1,67 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSResponder</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>installUpdate</key>
|
||||
<string>id</string>
|
||||
<key>remindMeLater</key>
|
||||
<string>id</string>
|
||||
<key>skipThisVersion</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUUpdateAlert</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>delegate</key>
|
||||
<string>id</string>
|
||||
<key>description</key>
|
||||
<string>NSTextField</string>
|
||||
<key>releaseNotesView</key>
|
||||
<string>WebView</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>670</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>18</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>10A96</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Binary file not shown.
+59
@@ -0,0 +1,59 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>finishPrompt</key>
|
||||
<string>id</string>
|
||||
<key>toggleMoreInfo</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUUpdatePermissionPrompt</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>delegate</key>
|
||||
<string>id</string>
|
||||
<key>descriptionTextField</key>
|
||||
<string>NSTextField</string>
|
||||
<key>moreInfoButton</key>
|
||||
<string>NSButton</string>
|
||||
<key>moreInfoView</key>
|
||||
<string>NSView</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>670</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>6</integer>
|
||||
<integer>41</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>10A96</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Generated
BIN
Binary file not shown.
Binary file not shown.
+50
@@ -0,0 +1,50 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>doNotInstall</key>
|
||||
<string>id</string>
|
||||
<key>installLater</key>
|
||||
<string>id</string>
|
||||
<key>installNow</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUAutomaticUpdateAlert</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>677</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array/>
|
||||
<key>IBSystem Version</key>
|
||||
<string>9J61</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Generated
BIN
Binary file not shown.
Binary file not shown.
+67
@@ -0,0 +1,67 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSResponder</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>installUpdate</key>
|
||||
<string>id</string>
|
||||
<key>remindMeLater</key>
|
||||
<string>id</string>
|
||||
<key>skipThisVersion</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUUpdateAlert</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>delegate</key>
|
||||
<string>id</string>
|
||||
<key>description</key>
|
||||
<string>NSTextField</string>
|
||||
<key>releaseNotesView</key>
|
||||
<string>WebView</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>677</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array/>
|
||||
<key>IBSystem Version</key>
|
||||
<string>9J61</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Binary file not shown.
Binary file not shown.
+59
@@ -0,0 +1,59 @@
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ACTIONS</key>
|
||||
<dict>
|
||||
<key>finishPrompt</key>
|
||||
<string>id</string>
|
||||
<key>toggleMoreInfo</key>
|
||||
<string>id</string>
|
||||
</dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUUpdatePermissionPrompt</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>delegate</key>
|
||||
<string>id</string>
|
||||
<key>descriptionTextField</key>
|
||||
<string>NSTextField</string>
|
||||
<key>moreInfoButton</key>
|
||||
<string>NSButton</string>
|
||||
<key>moreInfoView</key>
|
||||
<string>NSView</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<?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>IBFramework Version</key>
|
||||
<string>677</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array/>
|
||||
<key>IBSystem Version</key>
|
||||
<string>9J61</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Generated
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -1 +0,0 @@
|
||||
Versions/Current/Sparkle
|
||||
Executable
BIN
Binary file not shown.
@@ -1,13 +0,0 @@
|
||||
//
|
||||
// NSApplication+AppCopies.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface NSApplication (SUAppCopies)
|
||||
- (int)copiesRunning;
|
||||
@end
|
||||
@@ -1,11 +0,0 @@
|
||||
//
|
||||
// NSFileManager+Authentication.m
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/9/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
@interface NSFileManager (SUAuthenticationAdditions)
|
||||
- (BOOL)movePathWithAuthentication:(NSString *)src toPath:(NSString *)dst;
|
||||
@end
|
||||
@@ -1,15 +0,0 @@
|
||||
//
|
||||
// NSFileManager+Verification.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
// For the paranoid folks!
|
||||
@interface NSFileManager (SUVerification)
|
||||
- (BOOL)validatePath:(NSString *)path withMD5Hash:(NSString *)hash;
|
||||
- (BOOL)validatePath:(NSString *)path withEncodedDSASignature:(NSString *)encodedSignature;
|
||||
@end
|
||||
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
|
||||
BSD License
|
||||
|
||||
Copyright (c) 2002, Brent Simmons
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of ranchero.com or Brent Simmons nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
NSString+extras.h
|
||||
NetNewsWire
|
||||
|
||||
Created by Brent Simmons on Fri Jun 14 2002.
|
||||
Copyright (c) 2002 Brent Simmons. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreFoundation/CoreFoundation.h>
|
||||
|
||||
|
||||
@interface NSString (extras)
|
||||
|
||||
- (NSString *)stringWithSubstitute:(NSString *)subs forCharactersFromSet:(NSCharacterSet *)set;
|
||||
|
||||
- (NSString *) trimWhiteSpace;
|
||||
|
||||
- (NSString *) stripHTML;
|
||||
|
||||
- (NSString *) ellipsizeAfterNWords: (int) n;
|
||||
|
||||
+ (BOOL) stringIsEmpty: (NSString *) s;
|
||||
|
||||
|
||||
@end
|
||||
@@ -1,98 +0,0 @@
|
||||
/*
|
||||
|
||||
BSD License
|
||||
|
||||
Copyright (c) 2002, Brent Simmons
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of ranchero.com or Brent Simmons nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
RSS.h
|
||||
A class for reading RSS feeds.
|
||||
|
||||
Created by Brent Simmons on Wed Apr 17 2002.
|
||||
Copyright (c) 2002 Brent Simmons. All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <CoreFoundation/CoreFoundation.h>
|
||||
#import "NSString+extras.h"
|
||||
|
||||
|
||||
@interface RSS : NSObject {
|
||||
|
||||
NSDictionary *headerItems;
|
||||
NSMutableArray *newsItems;
|
||||
NSString *version;
|
||||
|
||||
BOOL flRdf;
|
||||
BOOL normalize;
|
||||
}
|
||||
|
||||
|
||||
/*Public*/
|
||||
|
||||
- (RSS *) initWithTitle: (NSString *) title andDescription: (NSString *) description;
|
||||
|
||||
- (RSS *) initWithData: (NSData *) rssData normalize: (BOOL) fl;
|
||||
|
||||
- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl;
|
||||
- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl userAgent:(NSString *)userAgent;
|
||||
|
||||
- (NSDictionary *) headerItems;
|
||||
|
||||
- (NSMutableArray *) newsItems;
|
||||
|
||||
- (NSString *) version;
|
||||
|
||||
// AMM's extensions for Sparkle
|
||||
- (NSDictionary *)newestItem;
|
||||
|
||||
|
||||
/*Private*/
|
||||
|
||||
- (void) createheaderdictionary: (CFXMLTreeRef) tree;
|
||||
|
||||
- (void) createitemsarray: (CFXMLTreeRef) tree;
|
||||
|
||||
- (void) setversionstring: (CFXMLTreeRef) tree;
|
||||
|
||||
- (void) flattenimagechildren: (CFXMLTreeRef) tree into: (NSMutableDictionary *) dictionary;
|
||||
|
||||
- (void) flattensourceattributes: (CFXMLNodeRef) node into: (NSMutableDictionary *) dictionary;
|
||||
|
||||
- (CFXMLTreeRef) getchanneltree: (CFXMLTreeRef) tree;
|
||||
|
||||
- (CFXMLTreeRef) getnamedtree: (CFXMLTreeRef) currentTree name: (NSString *) name;
|
||||
|
||||
- (void) normalizeRSSItem: (NSMutableDictionary *) rssItem;
|
||||
|
||||
- (NSString *) getelementvalue: (CFXMLTreeRef) tree;
|
||||
|
||||
@end
|
||||
@@ -6,22 +6,28 @@
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#ifndef SUAPPCAST_H
|
||||
#define SUAPPCAST_H
|
||||
|
||||
@class RSS, SUAppcastItem;
|
||||
@class SUAppcastItem;
|
||||
@interface SUAppcast : NSObject {
|
||||
NSArray *items;
|
||||
NSString *userAgentString;
|
||||
id delegate;
|
||||
NSMutableData *incrementalData;
|
||||
}
|
||||
|
||||
- (void)fetchAppcastFromURL:(NSURL *)url;
|
||||
- (void)setDelegate:delegate;
|
||||
- (void)setUserAgentString:(NSString *)userAgentString;
|
||||
|
||||
- (SUAppcastItem *)newestItem;
|
||||
- (NSArray *)items;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (SUAppcastDelegate)
|
||||
- appcastDidFinishLoading:(SUAppcast *)appcast;
|
||||
@end
|
||||
- (void)appcastDidFinishLoading:(SUAppcast *)appcast;
|
||||
- (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error;
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,52 +6,42 @@
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#ifndef SUAPPCASTITEM_H
|
||||
#define SUAPPCASTITEM_H
|
||||
|
||||
@interface SUAppcastItem : NSObject {
|
||||
NSString *title;
|
||||
NSDate *date;
|
||||
NSString *description;
|
||||
NSString *itemDescription;
|
||||
|
||||
NSURL *releaseNotesURL;
|
||||
|
||||
NSString *DSASignature;
|
||||
NSString *MD5Sum;
|
||||
NSString *DSASignature;
|
||||
NSString *minimumSystemVersion;
|
||||
|
||||
NSURL *fileURL;
|
||||
NSString *fileVersion;
|
||||
NSString *versionString;
|
||||
NSString *displayVersionString;
|
||||
|
||||
NSDictionary *propertiesDictionary;
|
||||
}
|
||||
|
||||
// Initializes with data from a dictionary provided by the RSS class.
|
||||
- initWithDictionary:(NSDictionary *)dict;
|
||||
|
||||
- (NSString *)title;
|
||||
- (void)setTitle:(NSString *)aTitle;
|
||||
|
||||
- (NSDate *)date;
|
||||
- (void)setDate:(NSDate *)aDate;
|
||||
|
||||
- (NSString *)description;
|
||||
- (void)setDescription:(NSString *)aDescription;
|
||||
|
||||
- (NSURL *)releaseNotesURL;
|
||||
- (void)setReleaseNotesURL:(NSURL *)aReleaseNotesURL;
|
||||
|
||||
- (NSString *)DSASignature;
|
||||
- (void)setDSASignature:(NSString *)aDSASignature;
|
||||
|
||||
- (NSString *)MD5Sum;
|
||||
- (void)setMD5Sum:(NSString *)aMd5Sum;
|
||||
|
||||
- (NSURL *)fileURL;
|
||||
- (void)setFileURL:(NSURL *)aFileURL;
|
||||
|
||||
- (NSString *)fileVersion;
|
||||
- (void)setFileVersion:(NSString *)aFileVersion;
|
||||
|
||||
- (NSString *)versionString;
|
||||
- (void)setVersionString:(NSString *)versionString;
|
||||
- (NSString *)displayVersionString;
|
||||
- (NSDate *)date;
|
||||
- (NSString *)itemDescription;
|
||||
- (NSURL *)releaseNotesURL;
|
||||
- (NSURL *)fileURL;
|
||||
- (NSString *)DSASignature;
|
||||
- (NSString *)minimumSystemVersion;
|
||||
|
||||
// Returns the dictionary provided in initWithDictionary; this might be useful later for extensions.
|
||||
- (NSDictionary *)propertiesDictionary;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
//
|
||||
// SUAutomaticUpdateAlert.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/18/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@class SUAppcastItem;
|
||||
@interface SUAutomaticUpdateAlert : NSWindowController {
|
||||
SUAppcastItem *updateItem;
|
||||
}
|
||||
|
||||
- initWithAppcastItem:(SUAppcastItem *)item;
|
||||
|
||||
- (IBAction)relaunchNow:sender;
|
||||
- (IBAction)relaunchLater:sender;
|
||||
|
||||
@end
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// SUConstants.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
extern NSString *SUUpdaterWillRestartNotification;
|
||||
|
||||
extern NSString *SUCheckAtStartupKey;
|
||||
extern NSString *SUFeedURLKey;
|
||||
extern NSString *SUShowReleaseNotesKey;
|
||||
extern NSString *SUSkippedVersionKey;
|
||||
extern NSString *SUScheduledCheckIntervalKey;
|
||||
extern NSString *SULastCheckTimeKey;
|
||||
extern NSString *SUExpectsDSASignatureKey;
|
||||
extern NSString *SUPublicDSAKeyKey;
|
||||
extern NSString *SUAutomaticallyUpdateKey;
|
||||
extern NSString *SUAllowsAutomaticUpdatesKey;
|
||||
@@ -1,26 +0,0 @@
|
||||
//
|
||||
// SUStatusChecker.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Evan Schoenberg on 7/6/06.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <Sparkle/SUUpdater.h>
|
||||
|
||||
@class SUStatusChecker;
|
||||
|
||||
@protocol SUStatusCheckerDelegate <NSObject>
|
||||
//versionString will be nil and isNewVersion will be NO if version checking fails.
|
||||
- (void)statusChecker:(SUStatusChecker *)statusChecker foundVersion:(NSString *)versionString isNewVersion:(BOOL)isNewVersion;
|
||||
@end
|
||||
|
||||
@interface SUStatusChecker : SUUpdater {
|
||||
id<SUStatusCheckerDelegate> scDelegate;
|
||||
}
|
||||
|
||||
// Create a status checker which will notifiy delegate once the appcast version is determined.
|
||||
// Notification occurs via the method defined in the SUStatusCheckerDelegate informal protocol.
|
||||
+ (SUStatusChecker *)statusCheckerForDelegate:(id<SUStatusCheckerDelegate>)delegate;
|
||||
|
||||
@end
|
||||
@@ -1,33 +0,0 @@
|
||||
//
|
||||
// SUStatusController.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/14/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
@interface SUStatusController : NSWindowController {
|
||||
double progressValue, maxProgressValue;
|
||||
NSString *title, *statusText, *buttonTitle;
|
||||
IBOutlet NSButton *actionButton;
|
||||
}
|
||||
|
||||
// Pass 0 for the max progress value to get an indeterminate progress bar.
|
||||
// Pass nil for the status text to not show it.
|
||||
- (void)beginActionWithTitle:(NSString *)title maxProgressValue:(double)maxProgressValue statusText:(NSString *)statusText;
|
||||
|
||||
// If isDefault is YES, the button's key equivalent will be \r.
|
||||
- (void)setButtonTitle:(NSString *)buttonTitle target:target action:(SEL)action isDefault:(BOOL)isDefault;
|
||||
- (void)setButtonEnabled:(BOOL)enabled;
|
||||
|
||||
- (double)progressValue;
|
||||
- (void)setProgressValue:(double)value;
|
||||
- (double)maxProgressValue;
|
||||
- (void)setMaxProgressValue:(double)value;
|
||||
|
||||
- (void)setStatusText:(NSString *)statusText;
|
||||
|
||||
@end
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// SUUnarchiver.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
|
||||
@interface SUUnarchiver : NSObject {
|
||||
id delegate;
|
||||
}
|
||||
|
||||
- (void)unarchivePath:(NSString *)path;
|
||||
- (void)setDelegate:delegate;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (SUUnarchiverDelegate)
|
||||
- (void)unarchiver:(SUUnarchiver *)unarchiver extractedLength:(long)length;
|
||||
- (void)unarchiverDidFinish:(SUUnarchiver *)unarchiver;
|
||||
- (void)unarchiverDidFail:(SUUnarchiver *)unarchiver;
|
||||
@end
|
||||
@@ -1,40 +0,0 @@
|
||||
//
|
||||
// SUUpdateAlert.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/12/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
SUInstallUpdateChoice,
|
||||
SURemindMeLaterChoice,
|
||||
SUSkipThisVersionChoice
|
||||
} SUUpdateAlertChoice;
|
||||
|
||||
@class WebView, SUAppcastItem;
|
||||
@interface SUUpdateAlert : NSWindowController {
|
||||
SUAppcastItem *updateItem;
|
||||
id delegate;
|
||||
|
||||
IBOutlet WebView *releaseNotesView;
|
||||
IBOutlet NSTextField *description;
|
||||
NSProgressIndicator *releaseNotesSpinner;
|
||||
BOOL webViewFinishedLoading;
|
||||
}
|
||||
|
||||
- initWithAppcastItem:(SUAppcastItem *)item;
|
||||
- (void)setDelegate:delegate;
|
||||
|
||||
- (IBAction)installUpdate:sender;
|
||||
- (IBAction)skipThisVersion:sender;
|
||||
- (IBAction)remindMeLater:sender;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (SUUpdateAlertDelegate)
|
||||
- (void)updateAlert:(SUUpdateAlert *)updateAlert finishedWithChoice:(SUUpdateAlertChoice)updateChoice;
|
||||
@end
|
||||
@@ -6,50 +6,113 @@
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#ifndef SUUPDATER_H
|
||||
#define SUUPDATER_H
|
||||
|
||||
// Before you use Sparkle in your app, you must set SUFeedURL in Info.plist to the
|
||||
// address of the appcast on your webserver. If you don't already have an
|
||||
// appcast, please see the Sparkle documentation to learn about how to set one up.
|
||||
#import <Sparkle/SUVersionComparisonProtocol.h>
|
||||
|
||||
// .zip, .dmg, .tar, .tbz, .tgz archives are supported at this time.
|
||||
|
||||
// By default, Sparkle offers to show the user the release notes of the build they'll be
|
||||
// getting, which it assumes are in the description (or body) field of the relevant RSS item.
|
||||
// Set SUShowReleaseNotes to <false/> in Info.plist to hide the button.
|
||||
|
||||
@class SUAppcastItem, SUUpdateAlert, SUStatusController;
|
||||
@class SUUpdateDriver, SUAppcastItem, SUHost, SUAppcast;
|
||||
@interface SUUpdater : NSObject {
|
||||
SUAppcastItem *updateItem;
|
||||
|
||||
SUStatusController *statusController;
|
||||
SUUpdateAlert *updateAlert;
|
||||
|
||||
NSURLDownload *downloader;
|
||||
NSString *downloadPath;
|
||||
|
||||
NSTimer *checkTimer;
|
||||
NSTimeInterval checkInterval;
|
||||
SUUpdateDriver *driver;
|
||||
|
||||
BOOL verbose;
|
||||
BOOL updateInProgress;
|
||||
SUHost *host;
|
||||
IBOutlet id delegate;
|
||||
}
|
||||
|
||||
+ (SUUpdater *)sharedUpdater;
|
||||
+ (SUUpdater *)updaterForBundle:(NSBundle *)bundle;
|
||||
- (NSBundle *)hostBundle;
|
||||
|
||||
- (void)setDelegate:(id)delegate;
|
||||
- delegate;
|
||||
|
||||
- (void)setAutomaticallyChecksForUpdates:(BOOL)automaticallyChecks;
|
||||
- (BOOL)automaticallyChecksForUpdates;
|
||||
|
||||
- (void)setUpdateCheckInterval:(NSTimeInterval)interval;
|
||||
- (NSTimeInterval)updateCheckInterval;
|
||||
|
||||
- (void)setFeedURL:(NSURL *)feedURL;
|
||||
- (NSURL *)feedURL;
|
||||
|
||||
- (void)setSendsSystemProfile:(BOOL)sendsSystemProfile;
|
||||
- (BOOL)sendsSystemProfile;
|
||||
|
||||
- (void)setAutomaticallyDownloadsUpdates:(BOOL)automaticallyDownloadsUpdates;
|
||||
- (BOOL)automaticallyDownloadsUpdates;
|
||||
|
||||
// This IBAction is meant for a main menu item. Hook up any menu item to this action,
|
||||
// and Sparkle will check for updates and report back its findings verbosely.
|
||||
- (IBAction)checkForUpdates:sender;
|
||||
|
||||
// This method is similar to the above, but it's intended for updates initiated by
|
||||
// the computer instead of by the user. It does not alert the user when he is up to date,
|
||||
// and it remains silent about network errors in fetching the feed. This is what you
|
||||
// want to call to update programmatically; only use checkForUpdates: with buttons and menu items.
|
||||
// This kicks off an update meant to be programmatically initiated. That is, it will display no UI unless it actually finds an update,
|
||||
// in which case it proceeds as usual. If the fully automated updating is turned on, however, this will invoke that behavior, and if an
|
||||
// update is found, it will be downloaded and prepped for installation.
|
||||
- (void)checkForUpdatesInBackground;
|
||||
|
||||
// This method allows you to schedule a check to run every time interval. You can
|
||||
// pass 0 to this method to cancel a previously scheduled timer. You probably don't want
|
||||
// to call this directly: if you set a SUScheduledCheckInterval key in Info.plist or
|
||||
// the user defaults, Sparkle will set this up for you automatically on startup. You might
|
||||
// just want to call this every time the user changes the setting in the preferences.
|
||||
- (void)scheduleCheckWithInterval:(NSTimeInterval)interval;
|
||||
// Date of last update check. Returns null if no check has been performed.
|
||||
- (NSDate*)lastUpdateCheckDate;
|
||||
|
||||
@end
|
||||
// This begins a "probing" check for updates which will not actually offer to update to that version. The delegate methods, though,
|
||||
// (up to updater:didFindValidUpdate: and updaterDidNotFindUpdate:), are called, so you can use that information in your UI.
|
||||
- (void)checkForUpdateInformation;
|
||||
|
||||
// Call this to appropriately schedule or cancel the update checking timer according to the preferences for time interval and automatic checks. This call does not change the date of the next check, but only the internal NSTimer.
|
||||
- (void)resetUpdateCycle;
|
||||
|
||||
- (BOOL)updateInProgress;
|
||||
@end
|
||||
|
||||
@interface NSObject (SUUpdaterDelegateInformalProtocol)
|
||||
// This method allows you to add extra parameters to the appcast URL, potentially based on whether or not Sparkle will also be sending along the system profile. This method should return an array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user.
|
||||
- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile;
|
||||
|
||||
// Use this to override the default behavior for Sparkle prompting the user about automatic update checks.
|
||||
- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)bundle;
|
||||
|
||||
// Implement this if you want to do some special handling with the appcast once it finishes loading.
|
||||
- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast;
|
||||
|
||||
// If you're using special logic or extensions in your appcast, implement this to use your own logic for finding
|
||||
// a valid update, if any, in the given appcast.
|
||||
- (SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)bundle;
|
||||
|
||||
// Sent when a valid update is found by the update driver.
|
||||
- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update;
|
||||
|
||||
// Sent when a valid update is not found.
|
||||
- (void)updaterDidNotFindUpdate:(SUUpdater *)update;
|
||||
|
||||
// Sent immediately before installing the specified update.
|
||||
- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update;
|
||||
|
||||
// Return YES to delay the relaunch until you do some processing; invoke the given NSInvocation to continue.
|
||||
- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)update untilInvoking:(NSInvocation *)invocation;
|
||||
|
||||
// Called immediately before relaunching.
|
||||
- (void)updaterWillRelaunchApplication:(SUUpdater *)updater;
|
||||
|
||||
// This method allows you to provide a custom version comparator.
|
||||
// If you don't implement this method or return nil, the standard version comparator will be used.
|
||||
- (id <SUVersionComparison>)versionComparatorForUpdater:(SUUpdater *)updater;
|
||||
|
||||
// Returns the path which is used to relaunch the client after the update is installed. By default, the path of the host bundle.
|
||||
- (NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater;
|
||||
|
||||
@end
|
||||
|
||||
// Define some minimum intervals to avoid DOS-like checking attacks. These are in seconds.
|
||||
#ifdef DEBUG
|
||||
#define SU_MIN_CHECK_INTERVAL 60
|
||||
#else
|
||||
#define SU_MIN_CHECK_INTERVAL 60*60
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define SU_DEFAULT_CHECK_INTERVAL 60
|
||||
#else
|
||||
#define SU_DEFAULT_CHECK_INTERVAL 60*60*24
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// SUUtilities.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/12/06.
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
id SUInfoValueForKey(NSString *key);
|
||||
NSString *SUHostAppName();
|
||||
NSString *SUHostAppDisplayName();
|
||||
NSString *SUHostAppVersion();
|
||||
NSString *SUHostAppVersionString();
|
||||
|
||||
NSComparisonResult SUStandardVersionComparison(NSString * versionA, NSString * versionB);
|
||||
|
||||
// If running make localizable-strings for genstrings, ignore the error on this line.
|
||||
NSString *SULocalizedString(NSString *key, NSString *comment);
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// SUVersionComparisonProtocol.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 12/21/07.
|
||||
// Copyright 2007 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SUVERSIONCOMPARISONPROTOCOL_H
|
||||
#define SUVERSIONCOMPARISONPROTOCOL_H
|
||||
|
||||
/*!
|
||||
@protocol
|
||||
@abstract Implement this protocol to provide version comparison facilities for Sparkle.
|
||||
*/
|
||||
@protocol SUVersionComparison
|
||||
|
||||
/*!
|
||||
@method
|
||||
@abstract An abstract method to compare two version strings.
|
||||
@discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent.
|
||||
*/
|
||||
- (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
@@ -2,21 +2,20 @@
|
||||
// Sparkle.h
|
||||
// Sparkle
|
||||
//
|
||||
// Created by Andy Matuschak on 3/16/06.
|
||||
// Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07)
|
||||
// Copyright 2006 Andy Matuschak. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SUUpdater.h"
|
||||
#import "SUUtilities.h"
|
||||
#import "SUConstants.h"
|
||||
#import "SUAppcast.h"
|
||||
#import "SUAppcastItem.h"
|
||||
#import "SUUpdateAlert.h"
|
||||
#import "SUAutomaticUpdateAlert.h"
|
||||
#import "SUStatusController.h"
|
||||
#import "SUUnarchiver.h"
|
||||
#import "SUStatusChecker.h"
|
||||
#ifndef SPARKLE_H
|
||||
#define SPARKLE_H
|
||||
|
||||
#import "NSApplication+AppCopies.h"
|
||||
#import "NSFileManager+Authentication.h"
|
||||
#import "NSFileManager+Verification.h"
|
||||
// This list should include the shared headers. It doesn't matter if some of them aren't shared (unless
|
||||
// there are name-space collisions) so we can list all of them to start with:
|
||||
|
||||
#import <Sparkle/SUUpdater.h>
|
||||
|
||||
#import <Sparkle/SUAppcast.h>
|
||||
#import <Sparkle/SUAppcastItem.h>
|
||||
#import <Sparkle/SUVersionComparisonProtocol.h>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!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>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Sparkle</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -14,9 +14,11 @@
|
||||
<string>Sparkle</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.5 Beta 6</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.1</string>
|
||||
<string>313</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
Copyright (c) 2006 Andy Matuschak
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,174 @@
|
||||
<?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>ADP2,1</key>
|
||||
<string>Developer Transition Kit</string>
|
||||
<key>MacBook1,1</key>
|
||||
<string>MacBook (Core Duo)</string>
|
||||
<key>MacBook2,1</key>
|
||||
<string>MacBook (Core 2 Duo)</string>
|
||||
<key>MacBook4,1</key>
|
||||
<string>MacBook (Core 2 Duo Feb 2008)</string>
|
||||
<key>MacBookAir1,1</key>
|
||||
<string>MacBook Air (January 2008)</string>
|
||||
<key>MacBookPro1,1</key>
|
||||
<string>MacBook Pro Core Duo (15-inch)</string>
|
||||
<key>MacBookPro1,2</key>
|
||||
<string>MacBook Pro Core Duo (17-inch)</string>
|
||||
<key>MacBookPro2,1</key>
|
||||
<string>MacBook Pro Core 2 Duo (17-inch)</string>
|
||||
<key>MacBookPro2,2</key>
|
||||
<string>MacBook Pro Core 2 Duo (15-inch)</string>
|
||||
<key>MacBookPro3,1</key>
|
||||
<string>MacBook Pro Core 2 Duo (15-inch LED, Core 2 Duo)</string>
|
||||
<key>MacBookPro3,2</key>
|
||||
<string>MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo)</string>
|
||||
<key>MacBookPro4,1</key>
|
||||
<string>MacBook Pro (Core 2 Duo Feb 2008)</string>
|
||||
<key>MacPro1,1</key>
|
||||
<string>Mac Pro (four-core)</string>
|
||||
<key>MacPro2,1</key>
|
||||
<string>Mac Pro (eight-core)</string>
|
||||
<key>MacPro3,1</key>
|
||||
<string>Mac Pro (January 2008 4- or 8- core "Harpertown")</string>
|
||||
<key>Macmini1,1</key>
|
||||
<string>Mac Mini (Core Solo/Duo)</string>
|
||||
<key>PowerBook1,1</key>
|
||||
<string>PowerBook G3</string>
|
||||
<key>PowerBook2,1</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook2,2</key>
|
||||
<string>iBook G3 (FireWire)</string>
|
||||
<key>PowerBook2,3</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook2,4</key>
|
||||
<string>iBook G3</string>
|
||||
<key>PowerBook3,1</key>
|
||||
<string>PowerBook G3 (FireWire)</string>
|
||||
<key>PowerBook3,2</key>
|
||||
<string>PowerBook G4</string>
|
||||
<key>PowerBook3,3</key>
|
||||
<string>PowerBook G4 (Gigabit Ethernet)</string>
|
||||
<key>PowerBook3,4</key>
|
||||
<string>PowerBook G4 (DVI)</string>
|
||||
<key>PowerBook3,5</key>
|
||||
<string>PowerBook G4 (1GHz / 867MHz)</string>
|
||||
<key>PowerBook4,1</key>
|
||||
<string>iBook G3 (Dual USB, Late 2001)</string>
|
||||
<key>PowerBook4,2</key>
|
||||
<string>iBook G3 (16MB VRAM)</string>
|
||||
<key>PowerBook4,3</key>
|
||||
<string>iBook G3 Opaque 16MB VRAM, 32MB VRAM, Early 2003)</string>
|
||||
<key>PowerBook5,1</key>
|
||||
<string>PowerBook G4 (17 inch)</string>
|
||||
<key>PowerBook5,2</key>
|
||||
<string>PowerBook G4 (15 inch FW 800)</string>
|
||||
<key>PowerBook5,3</key>
|
||||
<string>PowerBook G4 (17-inch 1.33GHz)</string>
|
||||
<key>PowerBook5,4</key>
|
||||
<string>PowerBook G4 (15 inch 1.5/1.33GHz)</string>
|
||||
<key>PowerBook5,5</key>
|
||||
<string>PowerBook G4 (17-inch 1.5GHz)</string>
|
||||
<key>PowerBook5,6</key>
|
||||
<string>PowerBook G4 (15 inch 1.67GHz/1.5GHz)</string>
|
||||
<key>PowerBook5,7</key>
|
||||
<string>PowerBook G4 (17-inch 1.67GHz)</string>
|
||||
<key>PowerBook5,8</key>
|
||||
<string>PowerBook G4 (Double layer SD, 15 inch)</string>
|
||||
<key>PowerBook5,9</key>
|
||||
<string>PowerBook G4 (Double layer SD, 17 inch)</string>
|
||||
<key>PowerBook6,1</key>
|
||||
<string>PowerBook G4 (12 inch)</string>
|
||||
<key>PowerBook6,2</key>
|
||||
<string>PowerBook G4 (12 inch, DVI)</string>
|
||||
<key>PowerBook6,3</key>
|
||||
<string>iBook G4</string>
|
||||
<key>PowerBook6,4</key>
|
||||
<string>PowerBook G4 (12 inch 1.33GHz)</string>
|
||||
<key>PowerBook6,5</key>
|
||||
<string>iBook G4 (Early-Late 2004)</string>
|
||||
<key>PowerBook6,7</key>
|
||||
<string>iBook G4 (Mid 2005)</string>
|
||||
<key>PowerBook6,8</key>
|
||||
<string>PowerBook G4 (12 inch 1.5GHz)</string>
|
||||
<key>PowerMac1,1</key>
|
||||
<string>Power Macintosh G3 (Blue & White)</string>
|
||||
<key>PowerMac1,2</key>
|
||||
<string>Power Macintosh G4 (PCI Graphics)</string>
|
||||
<key>PowerMac10,1</key>
|
||||
<string>Mac Mini G4</string>
|
||||
<key>PowerMac10,2</key>
|
||||
<string>Mac Mini (Late 2005)</string>
|
||||
<key>PowerMac11,2</key>
|
||||
<string>Power Macintosh G5 (Late 2005)</string>
|
||||
<key>PowerMac12,1</key>
|
||||
<string>iMac G5 (iSight)</string>
|
||||
<key>PowerMac2,1</key>
|
||||
<string>iMac G3 (Slot-loading CD-ROM)</string>
|
||||
<key>PowerMac2,2</key>
|
||||
<string>iMac G3 (Summer 2000)</string>
|
||||
<key>PowerMac3,1</key>
|
||||
<string>Power Macintosh G4 (AGP Graphics)</string>
|
||||
<key>PowerMac3,2</key>
|
||||
<string>Power Macintosh G4 (AGP Graphics)</string>
|
||||
<key>PowerMac3,3</key>
|
||||
<string>Power Macintosh G4 (Gigabit Ethernet)</string>
|
||||
<key>PowerMac3,4</key>
|
||||
<string>Power Macintosh G4 (Digital Audio)</string>
|
||||
<key>PowerMac3,5</key>
|
||||
<string>Power Macintosh G4 (Quick Silver)</string>
|
||||
<key>PowerMac3,6</key>
|
||||
<string>Power Macintosh G4 (Mirrored Drive Door)</string>
|
||||
<key>PowerMac4,1</key>
|
||||
<string>iMac G3 (Early/Summer 2001)</string>
|
||||
<key>PowerMac4,2</key>
|
||||
<string>iMac G4 (Flat Panel)</string>
|
||||
<key>PowerMac4,4</key>
|
||||
<string>eMac</string>
|
||||
<key>PowerMac4,5</key>
|
||||
<string>iMac G4 (17-inch Flat Panel)</string>
|
||||
<key>PowerMac5,1</key>
|
||||
<string>Power Macintosh G4 Cube</string>
|
||||
<key>PowerMac6,1</key>
|
||||
<string>iMac G4 (USB 2.0)</string>
|
||||
<key>PowerMac6,3</key>
|
||||
<string>iMac G4 (20-inch Flat Panel)</string>
|
||||
<key>PowerMac6,4</key>
|
||||
<string>eMac (USB 2.0, 2005)</string>
|
||||
<key>PowerMac7,2</key>
|
||||
<string>Power Macintosh G5</string>
|
||||
<key>PowerMac7,3</key>
|
||||
<string>Power Macintosh G5</string>
|
||||
<key>PowerMac8,1</key>
|
||||
<string>iMac G5</string>
|
||||
<key>PowerMac8,2</key>
|
||||
<string>iMac G5 (Ambient Light Sensor)</string>
|
||||
<key>PowerMac9,1</key>
|
||||
<string>Power Macintosh G5 (Late 2005)</string>
|
||||
<key>RackMac1,1</key>
|
||||
<string>Xserve G4</string>
|
||||
<key>RackMac1,2</key>
|
||||
<string>Xserve G4 (slot-loading, cluster node)</string>
|
||||
<key>RackMac3,1</key>
|
||||
<string>Xserve G5</string>
|
||||
<key>Xserve1,1</key>
|
||||
<string>Xserve (Intel Xeon)</string>
|
||||
<key>Xserve2,1</key>
|
||||
<string>Xserve (January 2008 quad-core)</string>
|
||||
<key>iMac1,1</key>
|
||||
<string>iMac G3 (Rev A-D)</string>
|
||||
<key>iMac4,1</key>
|
||||
<string>iMac (Core Duo)</string>
|
||||
<key>iMac4,2</key>
|
||||
<string>iMac for Education (17-inch, Core Duo)</string>
|
||||
<key>iMac5,1</key>
|
||||
<string>iMac (Core 2 Duo, 17 or 20 inch, SuperDrive)</string>
|
||||
<key>iMac5,2</key>
|
||||
<string>iMac (Core 2 Duo, 17 inch, Combo Drive)</string>
|
||||
<key>iMac6,1</key>
|
||||
<string>iMac (Core 2 Duo, 24 inch, SuperDrive)</string>
|
||||
<key>iMac8,1</key>
|
||||
<string>iMac (April 2008)</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+56
-12
@@ -1,12 +1,56 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = SUStatusController;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {actionButton = id; };
|
||||
SUPERCLASS = NSWindowController;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
<?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>IBClasses</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSWindowController</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSResponder</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>FirstResponder</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>NSObject</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>NSObject</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CLASS</key>
|
||||
<string>SUStatusController</string>
|
||||
<key>LANGUAGE</key>
|
||||
<string>ObjC</string>
|
||||
<key>OUTLETS</key>
|
||||
<dict>
|
||||
<key>actionButton</key>
|
||||
<string>NSButton</string>
|
||||
<key>progressBar</key>
|
||||
<string>NSProgressIndicator</string>
|
||||
</dict>
|
||||
<key>SUPERCLASS</key>
|
||||
<string>SUWindowController</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>IBVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>69 10 356 240 0 0 1280 832 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>443.0</string>
|
||||
<string>670</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>Sparkle.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>6</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8H14</string>
|
||||
<string>10A96</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user