00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __AIPANEL_H__
00015 #define __AIPANEL_H__
00016
00017 #include "AITypes.h"
00018 #include "IAIUnicodeString.h"
00019 #include "IAIAutoBuffer.h"
00022
00023
00024
00025
00026
00027
00028 #define kAIPanelSuite "AI Panel Suite"
00029 #define kAIPanelSuiteVersion3 AIAPI_VERSION(3)
00030 #define kAIPanelSuiteVersion kAIPanelSuiteVersion3
00031 #define kAIPanelVersion kAIPanelSuiteVersion
00032
00033
00034 #define kAIPanelFlyoutMenuSuite "AI Panel Flyout Menu Suite"
00035 #define kAIPanelFlyoutMenuSuiteVersion2 AIAPI_VERSION(2)
00036 #define kAIPanelFlyoutMenuSuiteVersion kAIPanelFlyoutMenuSuiteVersion2
00037 #define kAIPanelFlyoutMenuVersion kAIPanelFlyoutMenuSuiteVersion
00038
00039
00040
00041
00042
00043
00044 #ifdef WIN_ENV
00045 typedef HWND AIPanelPlatformWindow;
00046 #elif MAC_ENV
00047 #ifdef __OBJC__
00048 @class NSView;
00049 typedef NSView* AIPanelPlatformWindow;
00050 #else
00051 typedef void* AIPanelPlatformWindow;
00052 #endif
00053 #else
00054 #error unknown configuration
00055 #endif
00056
00058 typedef struct _opaque_AIPanel* AIPanelRef;
00059
00061 typedef struct _opaque_AIPanelFlyoutMenu* AIPanelFlyoutMenuRef;
00062
00065 enum {
00066 kAIPanelFlyoutMenuItemMark_NONE,
00067 kAIPanelFlyoutMenuItemMark_CHECK,
00068 kAIPanelFlyoutMenuItemMark_BULLET,
00069 kAIPanelFlyoutMenuItemMark_DASH
00070 };
00071
00074 typedef ai::uint32 AIPanelFlyoutMenuItemMark;
00075
00078 typedef void* AIPanelUserData;
00079
00084 typedef void AIAPI (*AIPanelFlyoutMenuPreVisibilityProc)(AIPanelRef inPanel);
00085
00091 typedef void AIAPI (*AIPanelFlyoutMenuProc)(AIPanelRef inPanel, ai::uint32 itemID);
00092
00098 typedef void AIAPI (*AIPanelVisibilityChangedNotifyProc)(AIPanelRef inPanel, AIBoolean isVisible);
00099
00104 typedef void AIAPI (*AIPanelSizeChangedNotifyProc)(AIPanelRef inPanel);
00105
00111 typedef void AIAPI (*AIPanelStateChangedNotifyProc)(AIPanelRef inPanel, ai::int16 newState);
00112
00117 typedef void AIAPI (*AIPanelClosedNotifyProc)(AIPanelRef inPanel);
00118
00119
00120
00122
00126 #define kAIInvalidPanelRef 'INVD'
00127
00128
00129
00130
00131
00132
00133
00134
00135
00143 struct AIPanelSuite{
00144
00156 AIAPI AIErr (*Create)(SPPluginRef inPluginRef, const ai::UnicodeString& inID, const ai::UnicodeString& inTitle,
00157 ai::int16 inStateCount, const AISize& inMinSize, AIBoolean isResizable,
00158 AIPanelFlyoutMenuRef inFlyoutMenu, AIPanelUserData inUserData, AIPanelRef& outPanel);
00159
00160
00165 AIAPI AIErr (*Destroy)(AIPanelRef inPanel);
00166
00167
00172 AIAPI AIErr (*GetPlatformWindow)(AIPanelRef inPanel, AIPanelPlatformWindow& outPlatformWindow);
00173
00174
00180 AIAPI AIErr (*Show)(AIPanelRef inPanel, AIBoolean inShow);
00181
00182
00183
00191 AIAPI AIErr (*IsShown)(AIPanelRef inPanel, AIBoolean& outIsShown);
00192
00193
00199 AIAPI AIErr (*GetUserData)(AIPanelRef inPanel, AIPanelUserData& outUserData);
00200
00201
00207 AIAPI AIErr (*SetUserData)(AIPanelRef inPanel, AIPanelUserData inUserData);
00208
00209
00214 AIAPI AIErr (*SetTitle)(AIPanelRef inPanel, const ai::UnicodeString& inTitle);
00215
00216
00221 AIAPI AIErr (*GetTitle)(AIPanelRef inPanel, ai::UnicodeString& outTitle);
00222
00223
00231 AIAPI AIErr (*SetIcon)(AIPanelRef inPanel, const ai::AutoBuffer<const ai::uint8*>& inPNGData, const ai::AutoBuffer<ai::uint32>& inDataSize,
00232 const ai::AutoBuffer<const ai::uint8*>& inPNGDarkData, const ai::AutoBuffer<ai::uint32>& inDarkDataSize);
00233
00234
00241 AIAPI AIErr (*SetIconResourceID)(AIPanelRef inPanel, const ai::AutoBuffer<ai::uint32>& iconResId, const ai::AutoBuffer<ai::uint32>& darkIconResId);
00242
00248 AIAPI AIErr (*GetSize)(AIPanelRef inPanel, AISize& outSize);
00249
00250
00255 AIAPI AIErr (*SetMinimumSize)(AIPanelRef inPanel, const AISize& inMinimumSize);
00256
00257
00262 AIAPI AIErr (*GetMinimumSize)(AIPanelRef inPanel, AISize& outMinimumSize);
00263
00264
00269 AIAPI AIErr (*SetMaximumSize)(AIPanelRef inPanel, const AISize& inMaximumSize);
00270
00271
00276 AIAPI AIErr (*GetMaximumSize)(AIPanelRef inPanel, AISize& outMaximumSize);
00277
00278
00287 AIAPI AIErr (*SetPreferredSizes)(AIPanelRef inPanel, const AISize& inPreferredSize);
00288
00289
00297 AIAPI AIErr (*SetSizes)(AIPanelRef inPanel, const AISize& inMinimumSize, const AISize& inPreferredUnconstrainedSize,
00298 const AISize& inPreferredConstrainedSize, const AISize& inMaximumSize);
00299
00300
00309 AIAPI AIErr (*SetSize)(AIPanelRef inPanel, const AISize& inSize);
00310
00311
00317 AIAPI AIErr (*GetPreferredConstrainedSize)(AIPanelRef inPanel, AISize& outPreferredConstrainedSize);
00318
00319
00325 AIAPI AIErr (*GetPreferredUnconstrainedSize)(AIPanelRef inPanel, AISize& outPreferredUnconstrainedSize);
00326
00327
00332 AIAPI AIErr (*SetCurrentState)(AIPanelRef inPanel, ai::int16 inCurrentState);
00333
00334
00339 AIAPI AIErr (*GetCurrentState)(AIPanelRef inPanel, ai::int16& outCurrentState);
00340
00341
00346 AIAPI AIErr (*SetStateCount)(AIPanelRef inPanel, ai::int16 inStateCount);
00347
00348
00353 AIAPI AIErr (*GetStateCount)(AIPanelRef inPanel, ai::int16& outStateCount);
00354
00355
00363 AIAPI AIErr (*SetVerticalStepSize)(AIPanelRef inPanel, AIReal inStepSize);
00364
00365
00370 AIAPI AIErr (*GetVerticalStepSize)(AIPanelRef inPanel, AIReal& outStepSize);
00371
00372
00378 AIAPI AIErr (*SetFlyoutMenu)(AIPanelRef inPanel, AIPanelFlyoutMenuRef inFlyoutMenu);
00379
00380
00386 AIAPI AIErr (*GetFlyoutMenu)(AIPanelRef inPanel, AIPanelFlyoutMenuRef& outFlyoutMenu);
00387
00388
00396 AIAPI AIErr (*IsMinimized)(AIPanelRef inPanel, AIBoolean& outIsMinimized);
00397
00398
00404 AIAPI AIErr (*ChangeIsMinimized)(AIPanelRef inPanel, AIBoolean inIsMinimized);
00405
00406
00413 AIAPI AIErr (*Move)(AIPanelRef inPanel, AIPoint inPoint);
00414
00415
00420 AIAPI AIErr (*SetFlyoutMenuPreVisibilityProc)(AIPanelRef inPanel, AIPanelFlyoutMenuPreVisibilityProc inFlyoutMenuPreVisProc);
00421
00422
00427 AIAPI AIErr (*SetFlyoutMenuProc)(AIPanelRef inPanel, AIPanelFlyoutMenuProc inFlyoutMenuProc);
00428
00429
00434 AIAPI AIErr (*SetVisibilityChangedNotifyProc)(AIPanelRef inPanel, AIPanelVisibilityChangedNotifyProc inVisibilityChangedNotifyProc);
00435
00436
00441 AIAPI AIErr (*SetSizeChangedNotifyProc)(AIPanelRef inPanel, AIPanelSizeChangedNotifyProc inSizeChangedNotifyProc);
00442
00443
00448 AIAPI AIErr (*SetStateChangedNotifyProc)(AIPanelRef inPanel, AIPanelStateChangedNotifyProc inStateChangedNotifyProc);
00449
00450
00455 AIAPI AIErr (*SetClosedNotifyProc)(AIPanelRef inPanel, AIPanelClosedNotifyProc inPanelClosedNotifyProc);
00456
00461 AIAPI AIErr(*GetPosition)(AIPanelRef inPanelRef, AIRealRect &outRect);
00462 };
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00480 struct AIPanelFlyoutMenuSuite{
00481
00486 AIAPI AIErr (*Create)(AIPanelFlyoutMenuRef& outFlyOutMenu);
00487
00488
00493 AIAPI AIErr (*Destroy)(AIPanelFlyoutMenuRef inFlyOutMenu);
00494
00495
00500 AIAPI AIErr (*Size)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32& outSize);
00501
00502
00508 AIAPI AIErr (*AppendItem)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inNewItemID, const ai::UnicodeString& inItemText);
00509
00510
00515 AIAPI AIErr (*AppendSeparator)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inNewItemID);
00516
00517
00524 AIAPI AIErr (*InsertItem)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inBeforeItemID, ai::uint32 inNewItemID, const ai::UnicodeString& inItemText);
00525
00526
00533 AIAPI AIErr (*InsertSeparator)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inBeforeItemID, ai::uint32 inNewItemID);
00534
00535
00540 AIAPI AIErr (*RemoveItem)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID);
00541
00542
00548 AIAPI AIErr (*SetItemEnabled)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIBoolean inEnabled);
00549
00550
00556 AIAPI AIErr (*GetItemEnabled)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIBoolean& outEnabled);
00557
00558
00564 AIAPI AIErr (*SetItemMark)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIPanelFlyoutMenuItemMark inItemMark);
00565
00566
00572 AIAPI AIErr (*GetItemMark)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIPanelFlyoutMenuItemMark& outItemMark);
00573
00574
00580 AIAPI AIErr (*SetItemText)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, const ai::UnicodeString& inItemText);
00581
00582
00588 AIAPI AIErr (*GetItemText)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, ai::UnicodeString& outItemText);
00589
00590
00597 AIAPI AIErr (*IsItemSeparator)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemIndex, AIBoolean& outIsItemSeparator);
00598
00599
00605 AIAPI AIErr (*SetItemSubMenu)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIPanelFlyoutMenuRef inSubMenu);
00606
00607
00613 AIAPI AIErr (*GetItemSubMenu)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID, AIPanelFlyoutMenuRef& outSubMenu);
00614
00615
00620 AIAPI AIErr (*DetachItemSubMenu)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemID);
00621
00627 AIAPI AIErr (*SetItemID)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemIndex, ai::uint32 inNewItemID);
00628
00634 AIAPI AIErr (*GetItemID)(AIPanelFlyoutMenuRef inFlyOutMenu, ai::uint32 inItemIndex, ai::uint32& outItemID);
00635 };
00636
00637
00638 #endif