ページ

2009年10月20日火曜日

Safari用独自プラグインを作る(6) - Safari のクラス構成

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

(前回)Cocoaの日々: Safari用独自プラグインを作る(5) - class-dump

前回生成した Safari を構成するクラスのヘッダファイルを簡単に整理してみた。括弧内はファイルの数。例えば、AB* 系は ABAddressBook や ABHomePagesController, ABPerson などがある。右側の * は簡易グラフ。機能構成の目安になるかと思いつけてみた(多いほど複雑だったり、重要な役割を果たすもの)。

目視なので数はおおざっぱなものとして見てほしい(区分けも恣意的)。

AB*                        ( 3) ***
Accepted*                  ( 4) ****
Accessibility*             ( 2) **
Activity*                  ( 4) ****
AddressBookMatch           ( 1) *
AppController*             ( 4) ****
AutoFill*                  ( 2) **
Banner*                    ( 5) *****
Black*                     ( 4) ****
Bonjour*                   ( 4) ****
Bookmark*                  (16) ****************
Browser*                   (29) ******************************
Bug*                       ( 2) **
Button*                    ( 3) ***
CacheController            ( 1) *
CancellableActivity        ( 1) *
CDStructures               ( 1) *
CertificateUtilities       ( 1) *
ClippedItems*              ( 2) **
ClosedWebViewHolder        ( 1) *
ColoredRect                ( 1) *
Completion*                ( 5) *****
Cropping*                  ( 2) **
CustomDisabled*            ( 1) *
DashboardWebClip*          ( 2) **
DateCell                   ( 1) *
DebugUtilities             ( 1) *
DefaultWebApp*             ( 1) *
DevelopMenuController      ( 1) *
DigitStringFormatter       ( 1) *
DiskArbitrationHelper2     ( 1) *
DoJavaScriptCommand        ( 1) *
DOM*                       ( 2) **
Download*                  ( 8) ********
EmailContents              ( 1) *
EtchedString*              ( 2) **
EventSending*              ( 3) ***
FadeIn/Fading*             ( 4) ****
Favorite*                  ( 6) ******
FileLocker*                ( 2) **
Find*                      ( 2) **
FlowView*                  ( 5) *****
Form*                      ( 4) ****
FrameProgressEntry         ( 1) *
GlobalHistory*             ( 2) **
Heartbeat                  ( 1) *
History*                   ( 3) ***
HTMLSource*                ( 4) ****
HTTPAuthentication*        ( 1) *
ImageAndTextCell*          ( 2) *
ImageOverlayView           ( 1) *
InnerSearchFieldDelegate   ( 1) *
ISyncController            ( 1) *
KeyValuePair               ( 1) *
ListView                   ( 1) *
LKView                     ( 1) *
LoadProgressMonitor        ( 1) *
Location*                  ( 7) *******
MessageReceivingPortReader ( 1) *
MiscFormsDataEditor        ( 1) *
MorphingDragImage*         ( 4) ****
MultipartForm*             ( 2) **
MutableDraggingInfo        ( 1) *
NetworkController          ( 1) *
NewBookmarks*              ( 2) **
NewTabButton               ( 1) *
Old*                       (12) **********
OtherUserAgent*            ( 1) *
OutlineView*               ( 2) *
Overlay*                   ( 4) ****
PageLoad*                  ( 5) *****
PasswordsEditor            ( 1) *
PDFLoadingProgress*        ( 3) ***
PlasticButton*             ( 2) **
PlatformFrameLoad*         ( 1) *
PreferencesModule          ( 1) *
PrintingAccessory*         ( 1) *
Purple*                    ( 3) ***
REnderTree*                ( 2) **
ReopensAtLaunch*           ( 1) *
ResetDialogController      ( 1) *
ResourceProgressEntry      ( 1) *
Rollover*                  ( 6) ******
RoundRectView              ( 1) *
RSS*                       ( 2) **
Safari*                    ( 6) ******
Search*                    ( 5) *****
Secure*                    ( 7) *******
ServicesProvider           ( 1) *
SharedLocalizedStrings     ( 1) *
Sheet*                     ( 2) **
ShowBookmarks              ( 1) *
SimpleSheetRequest         ( 1) *
SingleFeedSyncBookmark     ( 1) *
SiteDatabase*              ( 1) *
Sliding*                   ( 7) *******
SnapshotFetcher*           ( 2) **
SnippetEditorDelegate      ( 1) *
SourceListSection*         ( 1) *
SpinningProgressIndicator  ( 1) *
SplitView*                 ( 2) *
Spotlight*                 ( 5) *****
Stopwatch                  ( 1) *
Stress*                    ( 2) **
SyncBookmark*              ( 2) **
TabBar*                    ( 3) ***
TabButton*                 ( 2) **
Table*                     ( 2) **
TabLocation                ( 1) *
Text*                      ( 3) ***
TitleBarButton             ( 1) *
ToolbarController          ( 1) *
TopSites*                  ( 4) ****
TransparentOverlayWindow   ( 1) *
UndoRemoveInfo             ( 1) *
ViewTree*                  ( 2) **
VoiceOverLayerInfo         ( 1) *
Watchdog                   ( 1) *
WebBookmark*               (12) ************
WebClipBanner*             ( 2) **
WebDocument*               ( 6) ******
WebFormDelegate            ( 1) *
WebFrame*                  ( 2) **
WebHTMLRepresentation      ( 1) *
WebIconMenuItem*           ( 2) **
WebSearchField*            ( 3) ***
WebSecurityOrigin          ( 1) *
WebStringTruncator         ( 1) *
WebView*                   ( 3) ***
Window*                    ( 4) ****

*Animation                 ( 4) ****
*Preferences               ( 6) ******

その他に NS*系が 93個。ほとんどがカテゴリによるメソッド追加。

もう少し眺めてみよう(続く)。