00001 #ifndef __FBCONTROLS_H__
00002 #define __FBCONTROLS_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00047 #include <kaydaradef.h>
00048 #ifndef FBSDK_DLL
00049
00050 #define FBSDK_DLL K_DLLEXPORT
00051 #endif
00052
00053 #include <fbsdk/fbcomponent.h>
00054
00055 K_FORWARD( IKtLayoutRegion );
00056 K_FORWARD( IKtObject );
00057 K_FORWARD( IKtView );
00058
00059 class QWidget;
00060
00061 #ifdef FBSDKUseNamespace
00062 namespace FBSDKNamespace {
00063 #endif
00064
00065 FB_DEFINE_COMPONENT( FBSDK_DLL, Layout );
00066 FB_DEFINE_COMPONENT( FBSDK_DLL, VisualComponent );
00067 FB_DEFINE_COMPONENT( FBSDK_DLL, View );
00068
00069 #ifdef K_DISABLE_UI //{
00070
00071 #else // }{
00072
00073 FB_DEFINE_COMPONENT( FBSDK_DLL, TreeNode );
00074
00076 #define SPLIT_WIDTH 10
00077
00086 #define FBRegisterControl( ClassName, Path, Label, Description, IconFilename ) \
00087 HIObject RegisterControl##ClassName( HIObject ,const char * ,void * ) \
00088 {\
00089 ClassName *Class = new ClassName; \
00090 return Class->GetHIObject(); \
00091 } \
00092 FBLibraryModule( ClassName )\
00093 {\
00094 FBRegisterObject( ClassName,Path,Label,Description,RegisterControl##ClassName, true, IconFilename );\
00095 FBRegisterObject( ClassName##1,"FBSDK",Label,Description,RegisterControl##ClassName, true, IconFilename );\
00096 }
00097
00099
00101
00103 enum FBOrientation {
00104 kFBHorizontal,
00105 kFBVertical
00106 };
00107
00108 FB_DEFINE_ENUM( FBSDK_DLL, Orientation );
00109
00110 #endif //K_DISABLE_UI
00111
00112
00114
00117 enum FBInputType {
00118 kFBKeyPress,
00119 kFBKeyRelease,
00120 kFBButtonPress,
00121 kFBButtonRelease,
00122 kFBMotionNotify,
00123 kFBButtonDoubleClick,
00124 kFBMouseEnter,
00125 kFBMouseLeave,
00126 kFBMouseWheelNotify,
00127 kFBDragging,
00128 kFBDropping,
00129 kFBKeyPressRaw,
00130 kFBKeyReleaseRaw,
00131 kFBUnknownInput
00132 };
00133
00135 enum FBInputModifier {
00136 kFBKeyNone = 0,
00137 kFBKeyShift = 1 << 0,
00138 kFBKeyCtrl = 1 << 1,
00139 kFBKeyAlt = 1 << 2
00140 };
00141
00143 enum FBInputKey {
00144 kFBKeyReturn = 0x0D,
00145 kFBKeyBackSpace = 0x08,
00146 kFBKeyTab = 0x09,
00147 kFBKeyEscape = 0x1B,
00148
00149 kFBKeyPageUp = 0x121,
00150 kFBKeyPageDown = 0x122,
00151 kFBKeyEnd = 0x123,
00152 kFBKeyHome = 0x124,
00153 kFBKeyLeft = 0x125,
00154 kFBKeyUp = 0x126,
00155 kFBKeyRight = 0x127,
00156 kFBKeyDown = 0x128,
00157
00158 kFBKeyIns = 0x12D,
00159 kFBKeyDel = 0x12E,
00160
00161 kFBKeyF1 = 0x170,
00162 kFBKeyF2 = 0x171,
00163 kFBKeyF3 = 0x172,
00164 kFBKeyF4 = 0x173,
00165 kFBKeyF5 = 0x174,
00166 kFBKeyF6 = 0x175,
00167 kFBKeyF7 = 0x176,
00168 kFBKeyF8 = 0x177,
00169 kFBKeyF9 = 0x178,
00170 kFBKeyF10 = 0x179,
00171 kFBKeyF11 = 0x17A,
00172 kFBKeyF12 = 0x17B
00173 };
00174
00175 FB_DEFINE_ENUM( FBSDK_DLL, InputType );
00176 FB_DEFINE_ENUM( FBSDK_DLL, InputModifier );
00177 FB_DEFINE_ENUM( FBSDK_DLL, InputKey );
00178
00180 enum FBColorIndex
00181 {
00182
00183 kFBColorIndexBackground,
00184 kFBColorIndexBackground1,
00185 kFBColorIndexForeground,
00186 kFBColorIndexForeground1,
00187 kFBColorIndexForeground2,
00188 kFBColorIndexAlternate1,
00189 kFBColorIndexAlternate2,
00190 kFBColorIndexHighlight,
00191 kFBColorIndexShadow,
00192 kFBColorIndexWhite,
00193 kFBColorIndexBlack,
00194 kFBColorIndexLtGray,
00195 kFBColorIndexGray,
00196 kFBColorIndexDkGray,
00197 kFBColorIndexRed,
00198 kFBColorIndexGreen,
00199 kFBColorIndexBlue,
00200
00201 kFBColorIndexStdButton1,
00202 kFBColorIndexStdButton2,
00203 kFBColorIndexFlatButtonActive1,
00204 kFBColorIndexFlatButtonActive2,
00205 kFBColorIndexFlatButtonPassive1,
00206 kFBColorIndexFlatButtonPassive2,
00207 kFBColorIndexStdCheckboxClear1,
00208 kFBColorIndexStdCheckboxClear2,
00209 kFBColorIndexStdCheckboxAmbig1,
00210 kFBColorIndexStdCheckboxAmbig2,
00211 kFBColorIndexStdCheckboxDisabled1,
00212 kFBColorIndexStdCheckboxDisabled2,
00213 kFBColorIndexStdField1,
00214 kFBColorIndexStdField2,
00215 kFBColorIndexStdScrollActive1,
00216 kFBColorIndexStdScrollActive2,
00217 kFBColorIndexStdScrollPassive1,
00218 kFBColorIndexStdScrollPassive2,
00219 kFBColorIndexStdScrollCursor,
00220 kFBColorIndexStdListBg1,
00221 kFBColorIndexStdListBgSelected1,
00222 kFBColorIndexStdListBgSelected2,
00223 kFBColorIndexStdListBgFocusSelected1,
00224 kFBColorIndexStdListText,
00225 kFBColorIndexStdListTextSelected,
00226 kFBColorIndexStdListTextDragover,
00227 kFBColorIndexStdListLine,
00228 kFBColorIndexStdTabActive1,
00229 kFBColorIndexStdTabActive2,
00230 kFBColorIndexStdTabPassive1,
00231 kFBColorIndexStdTabPassive2,
00232 kFBColorIndexFlatTabBg1,
00233 kFBColorIndexFlatTabTextSelected,
00234 kFBColorIndexDisabled1,
00235 kFBColorIndexDisabled2,
00236 kFBColorIndexSelected,
00237 kFBColorIndexTimelineOutside,
00238 kFBColorIndexTimelineOutside1,
00239 kFBColorIndexTimelineCenter,
00240 kFBColorIndexTimelineCenter1,
00241 kFBColorIndexTimelineCenter2,
00242 kFBColorIndexTimelineShadow,
00243 kFBColorIndexTimelineHighlight,
00244 kFBColorIndexTimelineManipulator,
00245 kFBColorIndexStdListBgFocusSelected2,
00246 kFBColorIndexTreeBgTitle,
00247 kFBColorIndexTreeBgSubtitle,
00248 kFBColorIndexTreeBgSubtitleLine,
00249 kFBColorIndexTreeBgNode,
00250 kFBColorIndexTreeEditboxBg,
00251 kFBColorIndexTreeSplitter,
00252 kFBColorIndexTreeKeyingGroup,
00253 kFBColorIndexTreeOddRow,
00254 kFBColorIndexTreeSelect,
00255 kFBColorIndexTreeKeyingSelect,
00256 kFBColorIndexDkGreen,
00257
00258 kFBColorIndexSize
00259 };
00260
00261
00262 #ifndef K_DISABLE_UI
00263
00265
00267 __FB_FORWARD( FBLayout );
00268 __FB_FORWARD( FBVisualComponent );
00269
00270 FB_FORWARD( FBStringList );
00271
00272 FB_DEFINE_COMPONENT( FBSDK_DLL, FBVisualComponent );
00273
00275 enum FBAttachType {
00276 kFBAttachLeft,
00277 kFBAttachRight,
00278 kFBAttachTop,
00279 kFBAttachBottom,
00280 kFBAttachWidth,
00281 kFBAttachHeight,
00282 kFBAttachCenter,
00283 kFBAttachNone
00284 };
00285 FB_DEFINE_ENUM( FBSDK_DLL, AttachType );
00286
00288 enum FBBorderStyle {
00289 kFBNoBorder,
00290 kFBStandardBorder,
00291 kFBEmbossBorder,
00292 kFBEmbossSmoothBorder,
00293 kFBEmbossEdgeSmoothBorder,
00294 kFBEmbossSmoothEdgeBorder,
00295 kFBStandardSmoothBorder,
00296 kFBStandardEdgeSmoothBorder,
00297 kFBStandardSmoothEdgeBorder,
00298 kFBHighlightBorder,
00299 kFBPickingBorder
00300 };
00301 FB_DEFINE_ENUM( FBSDK_DLL, BorderStyle );
00302
00306 class FBSDK_DLL FBVisualComponent : public FBComponent {
00307 __FBClassDeclare( FBVisualComponent,FBComponent );
00308 protected:
00309 friend class FBLayout;
00310 friend class FBRenderer;
00311
00315 virtual HIKtObject GetHIKtObject();
00316 public:
00318 FBVisualComponent(HIObject pObject);
00319
00320 IObject_Declare(K_IMPLEMENTATION);
00321 ICallback_Declare(K_IMPLEMENTATION);
00322
00326 virtual HIKtView GetKtView();
00327
00331 QWidget* GetQWidgetAddress();
00332
00338 virtual bool AddChild( FBVisualComponent* pChild,int pId=0);
00339
00344 virtual FBVisualComponent* GetChild( int pId=0 );
00345
00349 virtual void Refresh(bool pNow=false);
00350
00352 virtual void ViewExpose();
00353
00361 virtual void ViewInput(int pMouseX,int pMouseY,FBInputType pAction,int pButtonKey,int pModifier);
00362
00366 virtual bool IsView();
00367
00371 struct __Region
00372 {
00373 FBPropertyString Name;
00374
00375 FBPropertyInt X;
00376 FBPropertyInt Y;
00377 FBPropertyInt Width;
00378 FBPropertyInt Height;
00379
00381 struct FBSDK_DLL __Ratio
00382 {
00383 FBPropertyFloat X;
00384 FBPropertyFloat Y;
00385 FBPropertyFloat Width;
00386 FBPropertyFloat Height;
00387 } Ratio;
00388
00390 struct FBSDK_DLL __AttachType
00391 {
00392 FBPropertyAttachType X;
00393 FBPropertyAttachType Y;
00394 FBPropertyAttachType Width;
00395 FBPropertyAttachType Height;
00396 } AttachType;
00397
00399 struct FBSDK_DLL __AttachTo
00400 {
00401 FBPropertyVisualComponent X;
00402 FBPropertyVisualComponent Y;
00403 FBPropertyVisualComponent Width;
00404 FBPropertyVisualComponent Height;
00405 } AttachTo;
00406
00408 struct FBSDK_DLL __Pos
00409 {
00410 FBPropertyInt X[2];
00411 FBPropertyInt Y[2];
00412 } Position;
00413
00414 } Region;
00415
00417 struct FBSDK_DLL __Border
00418 {
00419 FBPropertyString Caption;
00420 FBPropertyBool ShowCaption;
00421 FBPropertyBorderStyle Style;
00422 FBPropertyBool InSet;
00423 FBPropertyInt Width;
00424 FBPropertyInt Spacing;
00425 FBPropertyFloat MaxAngle;
00426 FBPropertyInt CornerRadius;
00427 } Border;
00428
00429 FBPropertyString Caption;
00430 FBPropertyBool Visible;
00431 FBPropertyBool ReadOnly;
00432 FBPropertyBool Enabled;
00433 FBPropertyString Hint;
00434
00435 FBPropertyInt Left;
00436 FBPropertyInt Top;
00437 FBPropertyInt Width;
00438 FBPropertyInt Height;
00439
00440 FBPropertyEvent OnEnter;
00441 FBPropertyEvent OnExit;
00442 };
00443
00444
00446
00448 __FB_FORWARD( FBEventInput );
00449
00451 class FBSDK_DLL FBEventInput : public FBEvent
00452 {
00453 public:
00457 FBEventInput( HKEventBase pEvent );
00458
00459 FBPropertyInputType InputType;
00460 FBPropertyInt X;
00461 FBPropertyInt Y;
00462 FBPropertyInt MouseButton;
00463 FBPropertyInt Key;
00464 FBPropertyInt KeyState;
00465 FBPropertyInt Pressure;
00466 FBPropertyInt MouseWheelDelta;
00467 };
00468
00470
00472 __FB_FORWARD( FBEventTransaction );
00473
00475 class FBSDK_DLL FBEventTransaction : public FBEvent
00476 {
00477 public:
00478 FBPropertyBool IsBeginTransaction;
00479
00483 FBEventTransaction( HKEventBase pEvent);
00484 };
00486
00488
00489 __FB_FORWARD( FBEventDragAndDrop );
00490
00492 enum FBDragAndDropState {
00493 kFBDragAndDropBegin,
00494 kFBDragAndDropDrag,
00495 kFBDragAndDropDrop,
00496 kFBDragAndDropEnd,
00497 kFBDragOnEmpty,
00498 kFBDragOnEmptyDrop
00499 };
00500
00501 FB_DEFINE_ENUM( FBSDK_DLL, DragAndDropState );
00502
00504 class FBSDK_DLL FBEventDragAndDrop : public FBEvent
00505 {
00506 public:
00510 FBEventDragAndDrop ( HKEventBase pEvent );
00511
00512 virtual ~FBEventDragAndDrop(){}
00513
00518 virtual void Accept();
00519
00524 virtual void Add( FBComponent* pComponent, int pId=0);
00525
00530 virtual FBComponent* Get( int pIndex );
00531
00533 virtual void Clear();
00534
00538 virtual int GetCount();
00539
00540
00541 FBPropertyDragAndDropState State;
00542 FBPropertyInt PosX;
00543 FBPropertyInt PosY;
00544 FBPropertykReference Data[2];
00545 };
00546
00548
00550 __FB_FORWARD( FBEventShow );
00551
00553 class FBSDK_DLL FBEventShow : public FBEvent
00554 {
00555 public:
00559 FBEventShow( HKEventBase pEvent );
00560
00561 FBPropertyBool Shown;
00562 };
00563
00565
00567 __FB_FORWARD( FBEventActivate );
00568
00570 class FBSDK_DLL FBEventActivate : public FBEvent
00571 {
00572 public:
00576 FBEventActivate( HKEventBase pEvent );
00577
00578 FBPropertykReference Data;
00579 };
00580
00582
00584 __FB_FORWARD( FBEventExpose );
00585
00587 class FBSDK_DLL FBEventExpose : public FBEvent
00588 {
00589 public:
00593 FBEventExpose( HKEventBase pEvent );
00594
00595
00596 };
00597
00599
00601 __FB_FORWARD( FBEventResize );
00602
00604 class FBSDK_DLL FBEventResize : public FBEvent
00605 {
00606 public:
00610 FBEventResize( HKEventBase pEvent );
00611
00612 FBPropertyInt Width;
00613 FBPropertyInt Height;
00614 };
00615
00617
00619 __FB_FORWARD(FBEventMenu);
00620 __FB_FORWARD(FBMenuItem);
00621
00626 #define FBMenuItemDeclare( ClassName,Parent ) \
00627 FBClassDeclare( ClassName,Parent ); \
00628 public: \
00629 ClassName():Parent() { FBClassInit; FBCreate(); } \
00630 private:
00631
00635 #define FBMenuItemImplementation( ThisComponent ) \
00636 FBClassImplementation( ThisComponent )
00637
00641 #define FBRegisterMenuItem( ClassName ) \
00642 HIObject RegisterMenuItem##ClassName( HIObject ,const char * ,void * ) \
00643 {\
00644 return NULL;\
00645 }\
00646 FBLibraryModule( ClassName ) \
00647 { \
00648 } \
00649 ClassName* g##ClassName;
00650
00654 #define FBMenuItemActivation( ClassName ) \
00655 extern ClassName* g##ClassName; \
00656 g##ClassName = new ClassName; \
00657 g##ClassName->Activate();
00658
00663 #define FBMenuItemHandle( ClassName, Handle ) \
00664 extern ClassName* g##ClassName; \
00665 Handle = g##ClassName;
00666
00668 enum FBMenuItemType {
00669 kFBMenuItemMotionImport,
00670 kFBMenuItemSceneImport,
00671 kFBMenuItemMotionExport,
00672 kFBMenuItemSceneExport
00673 };
00674
00675 FB_DEFINE_ENUM( FBSDK_DLL, MenuItemType );
00676
00678 class FBSDK_DLL FBEventMenu : public FBEvent
00679 {
00680 public:
00681 FBPropertyInt Id;
00682 FBPropertyString Name;
00683
00687 FBEventMenu( HKEventBase pEvent);
00688 };
00689
00691 class FBSDK_DLL FBMenuItem : public FBVisualComponent
00692 {
00693 __FBClassDeclare( FBMenuItem, FBVisualComponent );
00694
00695 public:
00697 FBMenuItem();
00698
00705 void Set(FBMenuItemType pType, const char* pExtension, const char* pLabel, const char* pDescription);
00706
00710 bool IsActive();
00711
00719 void Activate( bool pState = true );
00720
00726 virtual void OnItemSelectEvent(HIRegister pSender, HKEvent pEvent);
00727
00728 public:
00729 FBPropertyComponent Component;
00730 FBPropertyString Extension;
00731 FBPropertyString Label;
00732 FBPropertyString Description;
00733 FBPropertyMenuItemType Type;
00734
00735 FBPropertyString Path;
00736
00737 public:
00745 virtual bool Execute(const char *pFilename=NULL) = 0;
00746 };
00747
00749
00751
00776 class FBSDK_DLL FBLayout : public FBVisualComponent {
00777 __FBClassDeclare( FBLayout,FBVisualComponent );
00778 public:
00779
00781 enum FBSplitStyle
00782 {
00783 kFBNoSplit = 0,
00784 kFBHSplit = 1,
00785 kFBVSplit = 2,
00786 kFBHVSplit = 3
00787 };
00788
00790 FBLayout(HIObject pObject=NULL);
00791
00818 virtual bool AddRegion( const char *pName, const char *pTitle,
00819 int pX, FBAttachType pXType, const char *pXRelative, float pMultX,
00820 int pY, FBAttachType pYType, const char *pYRelative, float pMultY,
00821 int pW, FBAttachType pWType, const char *pWRelative, float pMultW,
00822 int pH, FBAttachType pHType, const char *pHRelative, float pMultH);
00823
00830 virtual bool MoveRegion( const char *pName, int pX, int pY );
00831
00838 virtual bool SizeRegion( const char *pName, int pW, int pH );
00839
00844 virtual bool RemoveRegion( const char *pName );
00845
00851 virtual bool RenameRegion( const char *pOldName, const char *pNewName );
00852
00857 virtual bool GetRegion( const char *pName );
00858
00868 virtual bool GetRegionPositions ( const char *pName, bool pComputed,
00869 int *pX, int *pY,
00870 int *pW=NULL, int *pH=NULL );
00871
00873
00878 virtual bool SetControl( const char *pName, FBVisualComponent* pComponent );
00879 virtual bool SetControl( const char *pName, FBVisualComponent &pComponent );
00881
00885 virtual void ClearControl(const char *pName);
00886
00891 virtual FBVisualComponent* GetControl(const char *pName);
00892
00897 virtual HIKtObject GetHIKtObject( const char *pName );
00898
00904 virtual bool SetHIKtView( const char *pName, HIKtView pView );
00905
00911 virtual HIKtView GetHIKtView( const char *pName );
00912
00914
00919 virtual bool SetView( const char *pName, FBVisualComponent* pComponent );
00920 virtual bool SetView( const char *pName, FBVisualComponent &pComponent );
00922
00934 virtual bool SetBorder ( const char *pName, FBBorderStyle pType, bool pShowTitle,
00935 bool pInSet, int pWidth, int pSpacing,
00936 float pMaxAngle, int pCornerRadius );
00937
00943 virtual bool SetSplitStyle ( const char *pName, FBSplitStyle pRegionType );
00944
00949 virtual FBSplitStyle GetSplitStyle ( const char *pName );
00950
00956 virtual bool SetRegionTitle ( const char *pName, const char* pTitle );
00957
00961 void SetAutoRestructure( bool pAutoRestructure );
00962
00966 void Restructure( bool pNoMove );
00967
00968 IObject_Declare(K_IMPLEMENTATION);
00969
00970
00971 FBPropertyEvent OnInput;
00972 FBPropertyEvent OnPaint;
00973 FBPropertyEvent OnIdle;
00974 FBPropertyEvent OnShow;
00975 FBPropertyEvent OnResize;
00976 };
00977
00979
00981 __FB_FORWARD( FBTabPanel );
00982
00984 class FBSDK_DLL FBTabPanel : public FBVisualComponent {
00985 __FBClassDeclare( FBTabPanel,FBVisualComponent );
00986 public:
00988 FBTabPanel();
00989
00990 FBPropertyStringList Items;
00991 FBPropertyInt ItemIndex;
00992 FBPropertyInt TabStyle;
00993 FBPropertyLayout Layout;
00994 FBPropertyEvent OnChange;
00995 };
00996
00998
01000 __FB_FORWARD( FBButton );
01001
01005 enum FBButtonStyle {
01006 kFBPushButton,
01007 kFBBitmapButton,
01008 kFBRadioButton,
01009 kFB2States,
01010 kFBCheckbox=kFB2States,
01011 kFBBitmap2States
01012 };
01013
01017 enum FBButtonState {
01018 kFBButtonState0,
01019 kFBButtonState1
01020 };
01021
01022 FB_DEFINE_ENUM( FBSDK_DLL, ButtonStyle );
01023
01025 enum FBTextJustify {
01026 kFBTextJustifyLeft,
01027 kFBTextJustifyRight,
01028 kFBTextJustifyCenter
01029 };
01030
01031 FB_DEFINE_ENUM( FBSDK_DLL, TextJustify );
01032
01034 enum FBTextStyle {
01035 kFBTextStyleNone = 0,
01036 kFBTextStyleBold = 1 << 0,
01037 kFBTextStyleItalic = 1 << 1,
01038 kFBTextStyleUnderlined = 1 << 2
01039 };
01040
01041 FB_DEFINE_ENUM( FBSDK_DLL, TextStyle );
01042
01044 enum FBButtonLook {
01045 kFBLookNormal,
01046 kFBLookColorChange,
01047 kFBLookPush,
01048 kFBLookFlat,
01049 kFBLookAlphaBackground=99
01050 };
01051
01052 FB_DEFINE_ENUM( FBSDK_DLL, ButtonLook );
01053
01060 class FBSDK_DLL FBButton : public FBVisualComponent {
01061 __FBClassDeclare( FBButton,FBVisualComponent );
01062 public:
01064 FBButton();
01065
01071 FBColor GetStateColor( FBButtonState pState );
01072
01077 void SetStateColor( FBButtonState pState, const FBColor& pColor );
01078
01085 void SetImageFileNames( const char* pUpImage, const char* pDownImage = 0, const char* pThirdImage = 0, bool pFromResources = false );
01086
01090 void HookToButton(FBButton* pButton);
01091
01092 FBPropertyInt State;
01093 FBPropertyButtonStyle Style;
01094 FBPropertyTextJustify Justify;
01095 FBPropertyButtonLook Look;
01096
01097 FBPropertyEvent OnClick;
01098 FBPropertyEvent OnDragAndDrop;
01099 };
01100
01102
01104 __FB_FORWARD( FBArrowButton );
01105
01112 class FBSDK_DLL FBArrowButton : public FBVisualComponent {
01113 __FBClassDeclare( FBArrowButton, FBVisualComponent );
01114 public:
01116 FBArrowButton();
01117
01125 void SetContent( const char* pTitle, FBVisualComponent* pContent, int pContentWidth, int pContentHeight );
01126 };
01127
01129
01131 __FB_FORWARD( FBScrollBox);
01132
01139 class FBSDK_DLL FBScrollBox : public FBVisualComponent {
01140 __FBClassDeclare( FBScrollBox, FBVisualComponent );
01141 public:
01143 FBScrollBox();
01144
01148 void SetContentWidth( int pContentWidth );
01149
01153 void SetContentHeight(int pContentHeight );
01154
01159 FBLayout* GetContent();
01160 private:
01161 FBLayout mLayout;
01162 };
01163
01164
01166
01168 __FB_FORWARD( FBLabel );
01169
01171 class FBSDK_DLL FBLabel : public FBVisualComponent {
01172 __FBClassDeclare( FBLabel,FBVisualComponent );
01173 public:
01175 FBLabel();
01176
01181 void SetTextColor(const FBColorAndAlpha& pColorRGBA);
01182
01187 void SetBackgroundDrawing(bool pDrawBackGround);
01188
01189 FBPropertyTextJustify Justify;
01190 FBPropertyTextStyle Style;
01191 FBPropertyBool WordWrap;
01192 };
01193
01195
01197 __FB_FORWARD( FBImageContainer );
01198
01200 class FBSDK_DLL FBImageContainer : public FBVisualComponent {
01201 __FBClassDeclare( FBImageContainer,FBVisualComponent );
01202 public:
01204 FBImageContainer();
01205
01206 FBPropertyString Filename;
01207 FBPropertyInt ImageWidth;
01208 FBPropertyInt ImageHeight;
01209
01210 FBPropertyEvent OnDragAndDrop;
01211 };
01212
01214
01216 __FB_FORWARD( FBEdit );
01217
01219 class FBSDK_DLL FBEdit : public FBVisualComponent {
01220 __FBClassDeclare( FBEdit,FBVisualComponent );
01221 public:
01223 FBEdit(HIObject pObject=NULL);
01224
01225 FBPropertyString Text;
01226 FBPropertyBool PasswordMode;
01227
01228 FBPropertyEvent OnChange;
01229 FBPropertyEvent OnTransaction;
01230 };
01231
01233
01235 __FB_FORWARD( FBEditNumber );
01236
01238 class FBSDK_DLL FBEditNumber : public FBVisualComponent {
01239 __FBClassDeclare( FBEditNumber,FBVisualComponent );
01240 public:
01242 FBEditNumber();
01243
01244 FBPropertyDouble Value;
01245 FBPropertyDouble Min;
01246 FBPropertyDouble Max;
01247 FBPropertyDouble Precision;
01248 FBPropertyDouble LargeStep;
01249 FBPropertyDouble SmallStep;
01250
01251 FBPropertyEvent OnChange;
01252 };
01253
01255
01257 __FB_FORWARD( FBEditColor );
01258
01260 class FBSDK_DLL FBEditColor : public FBVisualComponent {
01261 __FBClassDeclare( FBEditColor,FBVisualComponent );
01262 public:
01264 FBEditColor();
01265
01266 FBPropertyColor Value;
01267 FBPropertyInt ColorMode;
01268
01269 FBPropertyEvent OnChange;
01270 };
01271
01273
01275 __FB_FORWARD( FBEditVector );
01276
01278 class FBSDK_DLL FBEditVector : public FBVisualComponent {
01279 __FBClassDeclare( FBEditVector,FBVisualComponent );
01280 public:
01282 FBEditVector();
01283
01284 FBPropertyVector3d Value;
01285
01286 FBPropertyEvent OnChange;
01287 };
01288
01289 __FB_FORWARD( FBEventDblClick );
01290
01292 class FBSDK_DLL FBEventDblClick : public FBEvent
01293 {
01294 public:
01298 FBEventDblClick( HKEventBase pEvent );
01299
01300 FBPropertyInt Selection;
01301 };
01302
01304
01306 __FB_FORWARD( FBList );
01307
01309 enum FBListStyle {
01310 kFBDropDownList,
01311 kFBVerticalList
01312 };
01313
01314 FB_DEFINE_ENUM( FBSDK_DLL, ListStyle );
01315
01317 class FBSDK_DLL FBList : public FBVisualComponent {
01318 __FBClassDeclare( FBList,FBVisualComponent );
01319 public:
01321 FBList();
01322
01323 FBPropertyStringList Items;
01324
01325 FBPropertyInt ItemIndex;
01326 FBPropertyBool MultiSelect;
01327 FBPropertyBool ExtendedSelect;
01328 FBPropertyListStyle Style;
01329
01330 FBPropertyEvent OnChange;
01331 FBPropertyEvent OnDragAndDrop;
01332
01337 virtual bool IsSelected( int pIndex );
01338
01343 virtual void Selected( int pIndex, bool pSelected );
01344 };
01345
01347
01349 __FB_FORWARD( FBSlider );
01350
01352 class FBSDK_DLL FBSlider : public FBVisualComponent {
01353 __FBClassDeclare( FBSlider,FBVisualComponent );
01354 public:
01356 FBSlider();
01357
01358 FBPropertyDouble Min;
01359 FBPropertyDouble Max;
01360 FBPropertyDouble Value;
01361 FBPropertyOrientation Orientation;
01362 FBPropertyDouble LargeStep;
01363 FBPropertyDouble SmallStep;
01364
01365 FBPropertyEvent OnChange;
01366 FBPropertyEvent OnTransaction;
01367 };
01368
01370
01372 __FB_FORWARD( FBLayoutRegion );
01373
01375 class FBSDK_DLL FBLayoutRegion : public FBVisualComponent {
01376 __FBClassDeclare( FBLayoutRegion,FBVisualComponent );
01377 public:
01379 FBLayoutRegion();
01380 };
01381
01383
01385 __FB_FORWARD( FBThermometer );
01386
01388 class FBSDK_DLL FBThermometer : public FBVisualComponent {
01389 __FBClassDeclare( FBThermometer,FBVisualComponent );
01390 public:
01392 FBThermometer();
01393
01394 FBPropertyFloat Min;
01395 FBPropertyFloat Max;
01396 FBPropertyFloat Value;
01397
01401 void Clear();
01402 };
01403
01405
01407 __FB_FORWARD( FBSpread );
01408
01410 enum FBCellStyle {
01411 kFBCellStyleDefault,
01412 kFBCellStyleString,
01413 kFBCellStyleDouble,
01414 kFBCellStyleInteger,
01415 kFBCellStyleButton,
01416 kFBCellStyle2StatesButton,
01417 kFBCellStyle3StatesButton,
01418 kFBCellStyleMenu,
01419 kFBCellStyleVoid,
01420 kFBCellStyleView,
01421 kFBCellStyleTime
01422 };
01423
01424 FB_DEFINE_ENUM( FBSDK_DLL, CellStyle );
01425
01426 __FB_FORWARD( FBSpreadPart );
01427
01431 class FBSDK_DLL FBSpreadPart : public FBComponent {
01432 __FBClassDeclare( FBSpreadPart,FBComponent );
01433 protected:
01438 FBSpreadPart( FBSpread* pParent );
01439
01440 public:
01441 FBPropertyInt Row;
01442 FBPropertyInt Column;
01443 FBPropertyBool ReadOnly;
01444 FBPropertyBool Enabled;
01445 FBPropertyCellStyle Style;
01446 FBPropertyTextJustify Justify;
01447
01451 FBSpread* GetSpread();
01452 };
01453
01454 __FB_FORWARD( FBSpreadCell );
01455
01457 class FBSDK_DLL FBSpreadCell : public FBSpreadPart {
01458 __FBClassDeclare( FBSpreadCell, FBSpreadPart );
01459 public:
01460
01466 FBSpreadCell( FBSpread* pParent, kReference pRow, int pCol );
01467 };
01468
01469 __FB_FORWARD( FBSpreadRow );
01470
01472 class FBSDK_DLL FBSpreadRow : public FBSpreadPart {
01473 __FBClassDeclare( FBSpreadRow,FBSpreadPart );
01474 public:
01479 FBSpreadRow( FBSpread* pParent, kReference pRow );
01480
01482 virtual void Remove();
01483
01488 virtual bool EditCaption();
01489
01490 FBPropertyString Caption;
01491 FBPropertykReference Parent;
01492 FBPropertyBool RowSelected;
01493 };
01494
01495 __FB_FORWARD( FBSpreadColumn );
01496
01498 class FBSDK_DLL FBSpreadColumn : public FBSpreadPart {
01499 __FBClassDeclare( FBSpreadColumn,FBSpreadPart );
01500 public:
01505 FBSpreadColumn( FBSpread* pParent, int pCol );
01506
01507 FBPropertyString Caption;
01508 FBPropertyInt Width;
01509 FBPropertyTextJustify Justify;
01510 };
01511
01513 class FBSDK_DLL FBSpread : public FBVisualComponent {
01514 __FBClassDeclare( FBSpread,FBVisualComponent );
01515 public:
01518 FBSpread();
01519
01520 FBPropertyString Caption;
01521 FBPropertykReference Row;
01522 FBPropertyInt Column;
01523 FBPropertyBool MultiSelect;
01524
01525 FBPropertyEvent OnCellChange;
01526 FBPropertyEvent OnRowClick;
01527 FBPropertyEvent OnColumnClick;
01528 FBPropertyEvent OnDragAndDrop;
01529
01534 virtual void RowAdd( const char * pString, kReference pRef=0 );
01535
01539 virtual void RowSort( bool pAscending=true );
01540
01545 virtual void ColumnAdd( const char * pString, kReference pRef=0 );
01546
01550 virtual FBSpreadCell GetCurrentCell();
01551
01557 virtual FBSpreadCell GetCell( kReference pRef,int pColumn );
01558
01563 virtual FBSpreadColumn GetColumn( int pColumn );
01564
01569 virtual FBSpreadRow GetRow( kReference pRef );
01570
01576 virtual void SetCell( kReference pRef,int pColumn, const char* pString );
01577
01579
01584 virtual void SetCell( kReference pRef,int pColumn, int pValue );
01585 virtual void SetCell( kReference pRef,int pColumn, kLongLong pValue );
01586 virtual void SetCell( kReference pRef,int pColumn, double pValue );
01588
01594 virtual void GetCell( kReference pRef,int pColumn, const char* &pString );
01595
01597
01602 virtual void GetCell( kReference pRef,int pColumn, int &pValue );
01603 virtual void GetCell( kReference pRef,int pColumn, kLongLong &pValue );
01604 virtual void GetCell( kReference pRef,int pColumn, double &pValue );
01606
01612 virtual void SetCellView( kReference pRef,int pColumn, HIKtView pView );
01613
01619 virtual void GetCellView( kReference pRef,int pColumn, HIKtView &pView );
01620
01624 virtual void Clear();
01625 };
01626
01627 __FB_FORWARD( FBEventSpread );
01628
01630 class FBSDK_DLL FBEventSpread : public FBEvent
01631 {
01632 public:
01636 FBEventSpread( HKEventBase pEvent );
01637
01638 FBPropertyInt Row;
01639 FBPropertyInt Column;
01640
01644 FBPropertyInt Action;
01645 };
01646
01648
01650 __FB_FORWARD( FBVisualContainer );
01651 __FB_FORWARD( FBImage );
01652
01654 enum FBIconPosition {
01655 kFBIconLeft,
01656 kFBIconTop,
01657 };
01658
01659 FB_DEFINE_ENUM( FBSDK_DLL, IconPosition );
01660
01662 class FBSDK_DLL FBVisualContainer : public FBVisualComponent {
01663 __FBClassDeclare( FBVisualContainer,FBVisualComponent );
01664 public:
01667 FBVisualContainer();
01668
01675 bool ItemIconSet( kReference pRef, FBImage* pImage, bool pUseACopyOfTheImage=true );
01676
01683 K_DEPRECATED_2014 virtual bool ItemIconSet( kReference pRef, FBImageContainer* pImage, bool pUseACopyOfTheImage=true );
01684
01690 virtual bool ItemIconSet( kReference pRef, const char *pFilename );
01691
01696 virtual bool ItemNameEdit( kReference pRef );
01697
01701 virtual int GetSelection();
01702
01703 FBPropertyStringList Items;
01704
01705 FBPropertyInt ItemIndex;
01706 FBPropertyOrientation Orientation;
01707 FBPropertyBool ItemWrap;
01708 FBPropertyIconPosition IconPosition;
01709 FBPropertyInt ItemWidth;
01710 FBPropertyInt ItemHeight;
01711
01712 FBPropertyEvent OnChange;
01713 FBPropertyEvent OnDblClick;
01714 FBPropertyEvent OnDragAndDrop;
01715 };
01716
01718
01720 __FB_FORWARD( FBEditTimeCode );
01721
01722 class FBSDK_DLL FBEditTimeCode : public FBVisualComponent {
01723 __FBClassDeclare( FBEditTimeCode,FBVisualComponent );
01724 public:
01727 FBEditTimeCode();
01728
01729 FBPropertyTime Value;
01730
01731 FBPropertyEvent OnChange;
01732 };
01733
01735
01737 __FB_FORWARD( FBTreeNode );
01738 __FB_FORWARD( FBTree );
01739
01741
01743 __FB_FORWARD( FBEventTree );
01744
01746 enum FBEventTreeWhy
01747 {
01748 kFBEventTreeExpand,
01749 kFBEventTreeCollapse,
01750 kFBEventTreeHideNode,
01751 kFBEventTreeUnhideNode
01752 };
01753
01754 FB_DEFINE_ENUM( FBSDK_DLL, EventTreeWhy );
01755
01757 class FBSDK_DLL FBEventTree : public FBEvent
01758 {
01759 public:
01763 FBEventTree( HKEventBase pEvent );
01764
01765 FBPropertyEventTreeWhy Why;
01766 FBPropertyTreeNode TreeNode;
01767 };
01768
01769 __FB_FORWARD( FBEventTreeSelect );
01770
01772 class FBSDK_DLL FBEventTreeSelect : public FBEvent
01773 {
01774 public:
01778 FBEventTreeSelect( HKEventBase pEvent );
01779 FBPropertyTreeNode TreeNode;
01780 };
01781
01783 class FBSDK_DLL FBTreeNode : public FBComponent
01784 {
01785 __FBClassDeclare( FBTreeNode,FBComponent );
01786 public:
01791 FBTreeNode(FBTree* pTree, HIObject pObject);
01792
01793 FBPropertykReference Reference;
01794 FBPropertyBool Checked;
01795 };
01796
01798 class FBSDK_DLL FBPropertyListTreeNode: public FBPropertyBaseList< FBTreeNode* >
01799 {
01800 private:
01801 FBArrayTemplate< FBTreeNode* > mItems;
01802
01803 public:
01804 FBPropertyListTreeNode();
01805
01806 virtual ~FBPropertyListTreeNode();
01807
01808 virtual void Refresh ();
01809
01814 virtual int Add( FBTreeNode* pNode );
01815
01819 virtual void RemoveAt( int pIndex );
01820
01825 virtual FBTreeNode* operator[]( int pIndex );
01826
01830 virtual int GetCount ();
01831 };
01832
01834 class FBSDK_DLL FBTree : public FBVisualComponent
01835 {
01836 __FBClassDeclare( FBTree,FBVisualComponent );
01837 public:
01839 FBTree();
01840
01844 FBTreeNode* GetRoot();
01845
01848 void Clear();
01849
01855 FBTreeNode* InsertLast( FBTreeNode* pNode, const char* pName );
01856
01857 FBPropertyEvent OnSelect;
01858
01859 FBPropertyEvent OnClick;
01860 FBPropertyEvent OnClickCheck;
01861 FBPropertyEvent OnDblClick;
01862 FBPropertyEvent OnDeselect;
01863 FBPropertyEvent OnExpanded;
01864 FBPropertyEvent OnExpanding;
01865 FBPropertyEvent OnCollapsed;
01866 FBPropertyEvent OnCollapsing;
01867 FBPropertyEvent OnChange;
01868 FBPropertyEvent OnDragAndDrop;
01869 FBPropertyEvent OnEditNode;
01870
01871 FBPropertyInt SelectedCount;
01872 FBPropertyInt VisibleItemCount;
01873 FBPropertyBool AllowExpansion;
01874 FBPropertyBool AllowCollapse;
01875 FBPropertyBool MultiDrag;
01876 FBPropertyBool AutoScroll;
01877 FBPropertyInt Indent;
01878 FBPropertyBool CheckBoxes;
01879 FBPropertyBool ShowLines;
01880 FBPropertyInt ItemHeight;
01881 FBPropertyBool MultiSelect;
01882 FBPropertyBool EditNodeOn2Select;
01883 FBPropertyInt TreeHeight;
01884 FBPropertyInt TreeWidth;
01885 FBPropertyBool SelectionActive;
01886 FBPropertyBool DeselectOnCollapse;
01887 FBPropertyBool NoSelectOnDrag;
01888 FBPropertyBool NoSelectOnRightClick;
01889 FBPropertyBool HighlightOnRightClick;
01890 FBPropertyBool AutoScrollOnExpand;
01891 FBPropertyBool AutoExpandOnDragOver;
01892 FBPropertyBool AutoExpandOnDblClick;
01893 FBPropertyListTreeNode SelectedNodes;
01894 };
01895
01897
01899 __FB_FORWARD( FBView );
01900
01902 class FBSDK_DLL FBView : public FBVisualComponent {
01903 __FBClassDeclare( FBView,FBVisualComponent );
01904 public:
01907 FBView();
01908
01909 IObject_Declare(K_IMPLEMENTATION);
01910
01914 virtual void Refresh(bool pNow=false);
01915
01919 virtual bool IsView();
01920
01927 virtual void DrawString(const char *pText,float pX,float pY, int pEnable=-1);
01928
01936 virtual bool SetViewport(int pX,int pY,int pW,int pH);
01937
01938 FBPropertyBool GraphicOGL;
01939 FBPropertyBool DoubleBuffer;
01940 };
01941
01943
01945 __FB_FORWARD( FBProgress );
01946
01948 class FBSDK_DLL FBProgress : public FBVisualComponent {
01949 __FBClassDeclare( FBProgress,FBVisualComponent );
01950 public:
01953 FBProgress();
01954
01957 void ProgressBegin();
01960 void ProgressDone();
01961
01965 bool UserRequestCancell();
01966
01967 FBPropertyString Caption;
01968 FBPropertyString Text;
01969 FBPropertyInt Percent;
01970 };
01971
01973
01975 __FB_FORWARD( FBPopup );
01976
01980 class FBSDK_DLL FBPopup : public FBLayout {
01981 __FBClassDeclare( FBPopup,FBLayout );
01982 public:
01985 FBPopup();
01986
01991 virtual bool Show( FBVisualComponent* pParent=NULL );
01992
01996 virtual void Close(bool pOk=false);
01997
01998 FBPropertyString Caption;
01999 FBPropertyBool Modal;
02000 };
02001
02003
02005 __FB_FORWARD( FBFilePopup );
02006
02008 enum FBFilePopupStyle {
02009 kFBFilePopupOpen,
02010 kFBFilePopupSave
02011 };
02012
02013 FB_DEFINE_ENUM( FBSDK_DLL, FilePopupStyle );
02014
02016 class FBSDK_DLL FBFilePopup : public FBVisualComponent {
02017 __FBClassDeclare( FBFilePopup,FBVisualComponent );
02018 public:
02021 FBFilePopup();
02022
02026 virtual bool Execute();
02027
02028 FBPropertyString Caption;
02029 FBPropertyString FileName;
02030 FBPropertyString Path;
02031 FBPropertyString FullFilename;
02032 FBPropertyString Filter;
02033 FBPropertyFilePopupStyle Style;
02034 };
02035
02037
02039 __FB_FORWARD( FBFolderPopup );
02040
02042 class FBSDK_DLL FBFolderPopup : public FBVisualComponent {
02043 __FBClassDeclare( FBFolderPopup,FBVisualComponent );
02044 public:
02047 FBFolderPopup();
02048
02052 virtual bool Execute();
02053
02054 FBPropertyString Caption;
02055 FBPropertyString Path;
02056 };
02057
02070 FBSDK_DLL int FBMessageBox( const char* pBoxTitle, const char* pMessage, const char* pButton1Str, const char* pButton2Str=NULL, const char* pButton3Str=NULL, int pDefaultButton=0, int pScrolledMessage=0);
02071
02086 FBSDK_DLL int FBMessageBoxWithCheck( const char* pBoxTitle, const char* pMessage, const char* pButton1Str, const char* pButton2Str, const char* pButton3Str, const char* pCheckBoxStr, bool& pCheckBoxValue, int pDefaultButton=0, int pScrolledMessage=0);
02087
02089 enum FBPopupInputType{
02090 kFBPopupBool,
02091 kFBPopupChar,
02092 kFBPopupString,
02093 kFBPopupInt,
02094 kFBPopupFloat,
02095 kFBPopupDouble,
02096 kFBPopupPassword
02097 };
02098
02114 FBSDK_DLL int FBMessageBoxGetUserValue( const char* pBoxTitle, const char* pMessage, void* pValue, FBPopupInputType pValueType, const char* pButton1Str, const char* pButton2Str=NULL, const char* pButton3Str=NULL, int pDefaultButton=0, bool pLastButtonCancel = true );
02115
02117
02119 __FB_FORWARD( FBMemo );
02120
02122 class FBSDK_DLL FBMemo : public FBEdit {
02123 __FBClassDeclare( FBMemo,FBEdit );
02124 public:
02126 FBMemo();
02127
02131 void SetStrings(FBStringList* pLines);
02132
02136 void GetStrings(FBStringList* pLines);
02137 };
02138
02140
02142 __FB_FORWARD( FBWebView );
02143
02145 class FBSDK_DLL FBWebView : public FBVisualComponent {
02146 __FBClassDeclare( FBWebView,FBVisualComponent );
02147 public:
02149 FBWebView();
02150
02154 void Load(const char* pURL);
02155 };
02156
02157
02159
02161 __FB_FORWARD( FBFCurveEditor );
02162
02164 class FBSDK_DLL FBFCurveEditor : public FBVisualComponent {
02165 __FBClassDeclare( FBFCurveEditor,FBVisualComponent );
02166 public:
02168 FBFCurveEditor();
02169
02173 void AddAnimationNode(FBAnimationNode* pNode);
02177 void RemoveAnimationNode(FBAnimationNode* pNode);
02178
02182 void AddProperty(FBPropertyAnimatable* pProperty);
02186 void RemoveProperty(FBPropertyAnimatable* pProperty);
02187
02190 void Clear();
02191 };
02192
02194
02196 __FB_FORWARD( FBPropertyConnectionEditor );
02197
02199 class FBSDK_DLL FBPropertyConnectionEditor : public FBVisualComponent {
02200 __FBClassDeclare( FBPropertyConnectionEditor,FBVisualComponent );
02201 public:
02203 FBPropertyConnectionEditor();
02204
02207 void PopupTree();
02208
02211 void PopupList();
02212
02213 FBPropertyReference Property;
02214 };
02215
02217
02219 __FB_FORWARD( FBEditProperty );
02220
02263 class FBSDK_DLL FBEditProperty : public FBVisualComponent {
02264 __FBClassDeclare( FBEditProperty, FBVisualComponent );
02265 public:
02267 FBEditProperty();
02268
02269 FBPropertyReference Property;
02270
02271 FBPropertyDouble SliderMin;
02272 FBPropertyDouble SliderMax;
02273 FBPropertyDouble SmallInc;
02274 FBPropertyDouble LargeInc;
02275 FBPropertyDouble Precision;
02276 FBPropertyInt CaptionSize;
02277 };
02278
02279
02281
02283 __FB_FORWARD( FBEditPropertyModern );
02284
02291 class FBSDK_DLL FBEditPropertyModern : public FBVisualComponent {
02292 __FBClassDeclare( FBEditPropertyModern, FBVisualComponent );
02293 public:
02295 FBEditPropertyModern();
02296
02301 void SetBackgroundColorIndex( FBColorIndex pIndex );
02302
02303 FBPropertyReference Property;
02304
02305 FBPropertyDouble SliderMin;
02306 FBPropertyDouble SliderMax;
02307 FBPropertyDouble SmallInc;
02308 FBPropertyDouble LargeInc;
02309 FBPropertyDouble Precision;
02310 };
02311
02313
02315 __FB_FORWARD( FBBrowsingProperty );
02316
02318 class FBSDK_DLL FBBrowsingProperty : public FBVisualComponent {
02319 __FBClassDeclare( FBBrowsingProperty,FBVisualComponent );
02320 public:
02323 FBBrowsingProperty();
02324
02328 void AddObject(FBPlug* pObject);
02329
02333 void RemoveObject(FBPlug* pObject);
02334
02338 int ObjectGetCount();
02339
02344 FBPlug* ObjectGet(int pIndex);
02345
02352 int AddButtonInToolbar(const char* pCaption, HICallback pOwner, kICallbackHandler pHandler);
02353
02354 };
02355
02357
02359 __FB_FORWARD( FBWidgetHolder );
02360
02361
02374 class FBSDK_DLL FBWidgetHolder : public FBVisualComponent {
02375 __FBClassDeclare( FBWidgetHolder, FBVisualComponent );
02376 public:
02377
02379 typedef QWidget* (*WidgetCreator)(QWidget* pParent);
02380
02383 FBWidgetHolder();
02384
02392 void SetCreator(WidgetCreator pCreatorFunction );
02393
02397 virtual QWidget* WidgetCreate(QWidget* pParent);
02398 };
02399
02401
02403 FB_FORWARD( FBPlotOptions );
02404 __FB_FORWARD( FBPlotPopup );
02405
02407 class FBSDK_DLL FBPlotPopup : public FBVisualComponent {
02408 __FBClassDeclare( FBPlotPopup,FBVisualComponent );
02409 public:
02412 FBPlotPopup();
02413
02417 virtual bool Popup(const char* pWindowName);
02418
02422 FBPlotOptions GetPlotOptions();
02423
02424 FBPropertyBool EnablePlotTranslationOnRootOnly;
02425 FBPropertyBool EnableSmartPlotControls;
02426 FBPropertyBool EnablePlotCharacterExtension;
02427 FBPropertyBool EnablePlotLockedProperties;
02428 };
02429
02431
02433 FB_FORWARD( FBPropertyViewList );
02434 FB_FORWARD( FBPropertyViewDefinition );
02435 __FB_FORWARD( FBPropertyViewManager );
02436
02438 enum FBPropertyViewType
02439 {
02440 kFBViewGlobal = 0,
02441 kFBViewByObjectType,
02442 kFBViewByObject
02443 };
02444
02448 class FBSDK_DLL FBPropertyViewList
02449 {
02450 public:
02452 bool IsEditable();
02453
02459 FBPropertyViewDefinition* AddPropertyView(FBProperty* pProperty, const char* pHierarchy);
02460
02465 bool RemovePropertyView(FBPropertyViewDefinition* pPropertyViewDefinition);
02466
02468 FBPropertyViewDefinition* FindPropertyView(const char* pPropertyName);
02469 private:
02471
02472 FBPropertyViewList();
02474 FBPropertyViewList(const FBPropertyViewList &);
02476 FBPropertyViewList & operator =(const FBPropertyViewList &);
02478 };
02479
02483 class FBSDK_DLL FBPropertyViewDefinition
02484 {
02485 public:
02487 bool IsOpen();
02489 bool IsSaved();
02491 bool IsFolder();
02492
02494 void SetOpen(bool pTrue, bool pApplyUpHierarchy);
02496 void SetSaved(bool pTrue, bool pApplyUpHierarchy);
02497
02498 private:
02500
02501 FBPropertyViewDefinition();
02503 FBPropertyViewDefinition(const FBPropertyViewDefinition &);
02505 FBPropertyViewDefinition & operator =(const FBPropertyViewDefinition &);
02507 };
02508
02515 class FBSDK_DLL FBPropertyViewManager : public FBComponent
02516 {
02517 __FBClassDeclare( FBPropertyViewManager, FBComponent );
02518
02519 public:
02520
02521
02528 FBPropertyViewList* CreatePropertyList(FBComponent* pObject, FBPropertyViewType pViewType, const char* pName);
02529
02536 bool RemovePropertyList(FBComponent* pObject, FBPropertyViewType pViewType, const char* pName);
02537
02544 FBPropertyViewList* FindPropertyList(FBComponent* pObject, FBPropertyViewType pViewType, const char* pName);
02545
02546
02547
02555 FBPropertyViewDefinition* AddPropertyView(const char* pClassName, const char* pPropertyName, const char* pHierarchy);
02556
02563 bool RemovePropertyView(const char* pClassName, const char* pPropertyName);
02564
02571 void HidePropertyView(const char* pClassName, const char* pPropertyName, bool pHide);
02572
02573
02574
02577 void RefreshPropertyViews();
02578
02582 static FBPropertyViewManager& TheOne();
02583
02584 private:
02589 FBPropertyViewManager(HIObject pObject=NULL);
02590 };
02591
02592 #endif //}
02593
02594 #ifdef FBSDKUseNamespace
02595 }
02596 #endif
02597
02598 #endif