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 #ifdef FBSDKUseNamespace
00060 namespace FBSDKNamespace {
00061 #endif
00062
00063 FB_DEFINE_COMPONENT( FBSDK_DLL, Layout );
00064 FB_DEFINE_COMPONENT( FBSDK_DLL, VisualComponent );
00065 FB_DEFINE_COMPONENT( FBSDK_DLL, View );
00066
00067 #ifdef K_DISABLE_UI //{
00068
00069 #else // }{
00070
00071 FB_DEFINE_COMPONENT( FBSDK_DLL, TreeNode );
00072
00074 #define SPLIT_WIDTH 10
00075
00084 #define FBRegisterControl( ClassName, Path, Label, Description, IconFilename ) \
00085 HIObject RegisterControl##ClassName( HIObject ,char * ,void * ) \
00086 {\
00087 ClassName *Class = new ClassName; \
00088 return Class->GetHIObject(); \
00089 } \
00090 FBLibraryModule( ClassName )\
00091 {\
00092 FBRegisterObject( ClassName,Path,Label,Description,RegisterControl##ClassName, true, IconFilename );\
00093 FBRegisterObject( ClassName##1,"FBSDK",Label,Description,RegisterControl##ClassName, true, IconFilename );\
00094 }
00095
00097
00099
00101 enum FBOrientation {
00102 kFBHorizontal,
00103 kFBVertical
00104 };
00105
00106 FB_DEFINE_ENUM( FBSDK_DLL, Orientation );
00107
00108 #endif //K_DISABLE_UI
00109
00110
00112
00115 enum FBInputType {
00116 kFBKeyPress,
00117 kFBKeyRelease,
00118 kFBButtonPress,
00119 kFBButtonRelease,
00120 kFBMotionNotify,
00121 kFBButtonDoubleClick,
00122 kFBMouseEnter,
00123 kFBMouseLeave,
00124 kFBMouseWheelNotify,
00125 kFBDragging,
00126 kFBDropping,
00127 kFBKeyPressRaw,
00128 kFBKeyReleaseRaw,
00129 kFBUnknownInput
00130 };
00131
00133 enum FBInputModifier {
00134 kFBKeyNone = 0,
00135 kFBKeyShift = 1 << 0,
00136 kFBKeyCtrl = 1 << 1,
00137 kFBKeyAlt = 1 << 2
00138 };
00139
00141 enum FBInputKey {
00142 kFBKeyReturn = 0x0D,
00143 kFBKeyBackSpace = 0x08,
00144 kFBKeyTab = 0x09,
00145 kFBKeyEscape = 0x1B,
00146
00147 kFBKeyPageUp = 0x121,
00148 kFBKeyPageDown = 0x122,
00149 kFBKeyEnd = 0x123,
00150 kFBKeyHome = 0x124,
00151 kFBKeyLeft = 0x125,
00152 kFBKeyUp = 0x126,
00153 kFBKeyRight = 0x127,
00154 kFBKeyDown = 0x128,
00155
00156 kFBKeyIns = 0x12D,
00157 kFBKeyDel = 0x12E,
00158
00159 kFBKeyF1 = 0x170,
00160 kFBKeyF2 = 0x171,
00161 kFBKeyF3 = 0x172,
00162 kFBKeyF4 = 0x173,
00163 kFBKeyF5 = 0x174,
00164 kFBKeyF6 = 0x175,
00165 kFBKeyF7 = 0x176,
00166 kFBKeyF8 = 0x177,
00167 kFBKeyF9 = 0x178,
00168 kFBKeyF10 = 0x179,
00169 kFBKeyF11 = 0x17A,
00170 kFBKeyF12 = 0x17B
00171 };
00172
00173 FB_DEFINE_ENUM( FBSDK_DLL, InputType );
00174 FB_DEFINE_ENUM( FBSDK_DLL, InputModifier );
00175 FB_DEFINE_ENUM( FBSDK_DLL, InputKey );
00176
00178 enum FBColorIndex
00179 {
00180
00181 kFBColorIndexBackground,
00182 kFBColorIndexBackground1,
00183 kFBColorIndexForeground,
00184 kFBColorIndexForeground1,
00185 kFBColorIndexForeground2,
00186 kFBColorIndexAlternate1,
00187 kFBColorIndexAlternate2,
00188 kFBColorIndexHighlight,
00189 kFBColorIndexShadow,
00190 kFBColorIndexWhite,
00191 kFBColorIndexBlack,
00192 kFBColorIndexLtGray,
00193 kFBColorIndexGray,
00194 kFBColorIndexDkGray,
00195 kFBColorIndexRed,
00196 kFBColorIndexGreen,
00197 kFBColorIndexBlue,
00198
00199 kFBColorIndexStdButton1,
00200 kFBColorIndexStdButton2,
00201 kFBColorIndexFlatButtonActive1,
00202 kFBColorIndexFlatButtonActive2,
00203 kFBColorIndexFlatButtonPassive1,
00204 kFBColorIndexFlatButtonPassive2,
00205 kFBColorIndexStdCheckboxClear1,
00206 kFBColorIndexStdCheckboxClear2,
00207 kFBColorIndexStdCheckboxAmbig1,
00208 kFBColorIndexStdCheckboxAmbig2,
00209 kFBColorIndexStdCheckboxDisabled1,
00210 kFBColorIndexStdCheckboxDisabled2,
00211 kFBColorIndexStdField1,
00212 kFBColorIndexStdField2,
00213 kFBColorIndexStdScrollActive1,
00214 kFBColorIndexStdScrollActive2,
00215 kFBColorIndexStdScrollPassive1,
00216 kFBColorIndexStdScrollPassive2,
00217 kFBColorIndexStdScrollCursor,
00218 kFBColorIndexStdListBg1,
00219 kFBColorIndexStdListBgSelected1,
00220 kFBColorIndexStdListBgSelected2,
00221 kFBColorIndexStdListBgFocusSelected1,
00222 kFBColorIndexStdListText,
00223 kFBColorIndexStdListTextSelected,
00224 kFBColorIndexStdListTextDragover,
00225 kFBColorIndexStdListLine,
00226 kFBColorIndexStdTabActive1,
00227 kFBColorIndexStdTabActive2,
00228 kFBColorIndexStdTabPassive1,
00229 kFBColorIndexStdTabPassive2,
00230 kFBColorIndexFlatTabBg1,
00231 kFBColorIndexFlatTabTextSelected,
00232 kFBColorIndexDisabled1,
00233 kFBColorIndexDisabled2,
00234 kFBColorIndexSelected,
00235 kFBColorIndexTimelineOutside,
00236 kFBColorIndexTimelineOutside1,
00237 kFBColorIndexTimelineCenter,
00238 kFBColorIndexTimelineCenter1,
00239 kFBColorIndexTimelineCenter2,
00240 kFBColorIndexTimelineShadow,
00241 kFBColorIndexTimelineHighlight,
00242 kFBColorIndexTimelineManipulator,
00243 kFBColorIndexStdListBgFocusSelected2,
00244 kFBColorIndexTreeBgTitle,
00245 kFBColorIndexTreeBgSubtitle,
00246 kFBColorIndexTreeBgSubtitleLine,
00247 kFBColorIndexTreeBgNode,
00248 kFBColorIndexTreeEditboxBg,
00249 kFBColorIndexTreeSplitter,
00250 kFBColorIndexTreeKeyingGroup,
00251 kFBColorIndexTreeOddRow,
00252 kFBColorIndexTreeSelect,
00253 kFBColorIndexTreeKeyingSelect,
00254 kFBColorIndexDkGreen,
00255
00256 kFBColorIndexSize
00257 };
00258
00259
00260 #ifndef K_DISABLE_UI
00261
00263
00265 __FB_FORWARD( FBLayout );
00266 __FB_FORWARD( FBVisualComponent );
00267
00268 FB_FORWARD( FBStringList );
00269
00270 FB_DEFINE_COMPONENT( FBSDK_DLL, FBVisualComponent );
00271
00273 enum FBAttachType {
00274 kFBAttachLeft,
00275 kFBAttachRight,
00276 kFBAttachTop,
00277 kFBAttachBottom,
00278 kFBAttachWidth,
00279 kFBAttachHeight,
00280 kFBAttachCenter,
00281 kFBAttachNone
00282 };
00283 FB_DEFINE_ENUM( FBSDK_DLL, AttachType );
00284
00286 enum FBBorderStyle {
00287 kFBNoBorder,
00288 kFBStandardBorder,
00289 kFBEmbossBorder,
00290 kFBEmbossSmoothBorder,
00291 kFBEmbossEdgeSmoothBorder,
00292 kFBEmbossSmoothEdgeBorder,
00293 kFBStandardSmoothBorder,
00294 kFBStandardEdgeSmoothBorder,
00295 kFBStandardSmoothEdgeBorder,
00296 kFBHighlightBorder,
00297 kFBPickingBorder
00298 };
00299 FB_DEFINE_ENUM( FBSDK_DLL, BorderStyle );
00300
00304 class FBSDK_DLL FBVisualComponent : public FBComponent {
00305 __FBClassDeclare( FBVisualComponent,FBComponent );
00306 protected:
00307 friend class FBLayout;
00308
00312 virtual HIKtObject GetHIKtObject();
00313 public:
00315 FBVisualComponent(HIObject pObject);
00316
00317 IObject_Declare(Implementation);
00318 ICallback_Declare(Implementation);
00319
00323 virtual HIKtView GetKtView();
00324
00330 virtual bool AddChild( HFBVisualComponent pChild,int pId=0);
00331
00336 virtual HFBVisualComponent GetChild( int pId=0 );
00337
00341 virtual void Refresh(bool pNow=false);
00342
00344 virtual void ViewExpose();
00345
00353 virtual void ViewInput(int pMouseX,int pMouseY,FBInputType pAction,int pButtonKey,int pModifier);
00354
00358 virtual bool IsView();
00359
00363 struct __Region
00364 {
00365 FBPropertyString Name;
00366
00367 FBPropertyInt X;
00368 FBPropertyInt Y;
00369 FBPropertyInt Width;
00370 FBPropertyInt Height;
00371
00373 struct FBSDK_DLL __Ratio
00374 {
00375 FBPropertyFloat X;
00376 FBPropertyFloat Y;
00377 FBPropertyFloat Width;
00378 FBPropertyFloat Height;
00379 } Ratio;
00380
00382 struct FBSDK_DLL __AttachType
00383 {
00384 FBPropertyAttachType X;
00385 FBPropertyAttachType Y;
00386 FBPropertyAttachType Width;
00387 FBPropertyAttachType Height;
00388 } AttachType;
00389
00391 struct FBSDK_DLL __AttachTo
00392 {
00393 FBPropertyVisualComponent X;
00394 FBPropertyVisualComponent Y;
00395 FBPropertyVisualComponent Width;
00396 FBPropertyVisualComponent Height;
00397 } AttachTo;
00398
00400 struct FBSDK_DLL __Pos
00401 {
00402 FBPropertyInt X[2];
00403 FBPropertyInt Y[2];
00404 } Position;
00405
00406 } Region;
00407
00409 struct FBSDK_DLL __Border
00410 {
00411 FBPropertyString Caption;
00412 FBPropertyBool ShowCaption;
00413 FBPropertyBorderStyle Style;
00414 FBPropertyBool InSet;
00415 FBPropertyInt Width;
00416 FBPropertyInt Spacing;
00417 FBPropertyFloat MaxAngle;
00418 FBPropertyInt CornerRadius;
00419 } Border;
00420
00421 FBPropertyString Caption;
00422 FBPropertyBool Visible;
00423 FBPropertyBool ReadOnly;
00424 FBPropertyBool Enabled;
00425 FBPropertyString Hint;
00426
00427 FBPropertyInt Left;
00428 FBPropertyInt Top;
00429 FBPropertyInt Width;
00430 FBPropertyInt Height;
00431
00432 FBPropertyEvent OnEnter;
00433 FBPropertyEvent OnExit;
00434 };
00435
00436
00438
00440 __FB_FORWARD( FBEventInput );
00441
00443 class FBSDK_DLL FBEventInput : public FBEvent
00444 {
00445 public:
00449 FBEventInput( HKEventBase pEvent );
00450
00451 FBPropertyInputType InputType;
00452 FBPropertyInt X;
00453 FBPropertyInt Y;
00454 FBPropertyInt MouseButton;
00455 FBPropertyInt Key;
00456 FBPropertyInt KeyState;
00457 FBPropertyInt Pressure;
00458 FBPropertyInt MouseWheelDelta;
00459 };
00460
00462
00464 __FB_FORWARD( FBEventTransaction );
00465
00467 class FBSDK_DLL FBEventTransaction : public FBEvent
00468 {
00469 public:
00470 FBPropertyBool IsBeginTransaction;
00471
00475 FBEventTransaction( HKEventBase pEvent);
00476 };
00478
00480
00481 __FB_FORWARD( FBEventDragAndDrop );
00482
00484 enum FBDragAndDropState {
00485 kFBDragAndDropBegin,
00486 kFBDragAndDropDrag,
00487 kFBDragAndDropDrop,
00488 kFBDragAndDropEnd,
00489 kFBDragOnEmpty,
00490 kFBDragOnEmptyDrop
00491 };
00492
00493 FB_DEFINE_ENUM( FBSDK_DLL, DragAndDropState );
00494
00496 class FBSDK_DLL FBEventDragAndDrop : public FBEvent
00497 {
00498 public:
00502 FBEventDragAndDrop ( HKEventBase pEvent );
00503
00508 virtual void Accept();
00509
00514 virtual void Add( HFBComponent pComponent, int pId=0);
00515
00520 virtual HFBComponent Get( int pIndex );
00521
00523 virtual void Clear();
00524
00528 virtual int GetCount();
00529
00530
00531 FBPropertyDragAndDropState State;
00532 FBPropertyInt PosX;
00533 FBPropertyInt PosY;
00534 FBPropertykReference Data[2];
00535 };
00536
00538
00540 __FB_FORWARD( FBEventShow );
00541
00543 class FBSDK_DLL FBEventShow : public FBEvent
00544 {
00545 public:
00549 FBEventShow( HKEventBase pEvent );
00550
00551 FBPropertyBool Shown;
00552 };
00553
00555
00557 __FB_FORWARD( FBEventActivate );
00558
00560 class FBSDK_DLL FBEventActivate : public FBEvent
00561 {
00562 public:
00566 FBEventActivate( HKEventBase pEvent );
00567
00568 FBPropertykReference Data;
00569 };
00570
00572
00574 __FB_FORWARD( FBEventExpose );
00575
00577 class FBSDK_DLL FBEventExpose : public FBEvent
00578 {
00579 public:
00583 FBEventExpose( HKEventBase pEvent );
00584
00585
00586 };
00587
00589
00591 __FB_FORWARD( FBEventResize );
00592
00594 class FBSDK_DLL FBEventResize : public FBEvent
00595 {
00596 public:
00600 FBEventResize( HKEventBase pEvent );
00601
00602 FBPropertyInt Width;
00603 FBPropertyInt Height;
00604 };
00605
00607
00609 __FB_FORWARD(FBEventMenu);
00610 __FB_FORWARD(FBMenuItem);
00611
00616 #define FBMenuItemDeclare( ClassName,Parent ) \
00617 FBClassDeclare( ClassName,Parent ); \
00618 public: \
00619 ClassName():Parent() { FBClassInit; FBCreate(); } \
00620 private:
00621
00625 #define FBMenuItemImplementation( ThisComponent ) \
00626 FBClassImplementation( ThisComponent )
00627
00631 #define FBRegisterMenuItem( ClassName ) \
00632 HIObject RegisterMenuItem##ClassName( HIObject ,char * ,void * ) \
00633 {\
00634 return NULL;\
00635 }\
00636 FBLibraryModule( ClassName ) \
00637 { \
00638 } \
00639 ClassName* g##ClassName;
00640
00644 #define FBMenuItemActivation( ClassName ) \
00645 extern ClassName* g##ClassName; \
00646 g##ClassName = new ClassName; \
00647 g##ClassName->Activate();
00648
00653 #define FBMenuItemHandle( ClassName, Handle ) \
00654 extern ClassName* g##ClassName; \
00655 Handle = g##ClassName;
00656
00658 enum FBMenuItemType {
00659 kFBMenuItemMotionImport,
00660 kFBMenuItemSceneImport,
00661 kFBMenuItemMotionExport,
00662 kFBMenuItemSceneExport
00663 };
00664
00665 FB_DEFINE_ENUM( FBSDK_DLL, MenuItemType );
00666
00668 class FBSDK_DLL FBEventMenu : public FBEvent
00669 {
00670 public:
00671 FBPropertyInt Id;
00672 FBPropertyString Name;
00673
00677 FBEventMenu( HKEventBase pEvent);
00678 };
00679
00681 class FBSDK_DLL FBMenuItem : public FBVisualComponent
00682 {
00683 __FBClassDeclare( FBMenuItem, FBVisualComponent );
00684
00685 public:
00687 FBMenuItem();
00688
00695 void Set(FBMenuItemType pType, char* pExtension, char* pLabel, char* pDescription);
00696
00700 bool IsActive();
00701
00709 void Activate( bool pState = true );
00710
00716 virtual void OnItemSelectEvent(HIRegister pSender, HKEvent pEvent);
00717
00718 public:
00719 FBPropertyComponent Component;
00720 FBPropertyString Extension;
00721 FBPropertyString Label;
00722 FBPropertyString Description;
00723 FBPropertyMenuItemType Type;
00724
00725 public:
00733 virtual bool Execute(char *pFilename=NULL) = 0;
00734 };
00735
00737
00739
00765 class FBSDK_DLL FBLayout : public FBVisualComponent {
00766 __FBClassDeclare( FBLayout,FBVisualComponent );
00767 public:
00768
00770 enum FBSplitStyle
00771 {
00772 kFBNoSplit = 0,
00773 kFBHSplit = 1,
00774 kFBVSplit = 2,
00775 kFBHVSplit = 3
00776 };
00777
00779 FBLayout(HIObject pObject=NULL);
00780
00807 virtual bool AddRegion( char *pName, char *pTitle,
00808 int pX, FBAttachType pXType, char *pXRelative, float pMultX,
00809 int pY, FBAttachType pYType, char *pYRelative, float pMultY,
00810 int pW, FBAttachType pWType, char *pWRelative, float pMultW,
00811 int pH, FBAttachType pHType, char *pHRelative, float pMultH);
00812
00819 virtual bool MoveRegion( char *pName, int pX, int pY );
00820
00827 virtual bool SizeRegion( char *pName, int pW, int pH );
00828
00833 virtual bool RemoveRegion( char *pName );
00834
00840 virtual bool RenameRegion( char *pOldName, char *pNewName );
00841
00846 virtual bool GetRegion( char *pName );
00847
00857 virtual bool GetRegionPositions ( char *pName, bool pComputed,
00858 int *pX, int *pY,
00859 int *pW=NULL, int *pH=NULL );
00860
00862
00867 virtual bool SetControl( char *pName, HFBVisualComponent pComponent );
00868 virtual bool SetControl( char *pName, FBVisualComponent &pComponent );
00870
00874 virtual void ClearControl(char *pName);
00875
00880 virtual FBVisualComponent* GetControl(char *pName);
00881
00886 virtual HIKtObject GetHIKtObject( char *pName );
00887
00893 virtual bool SetHIKtView( char *pName, HIKtView pView );
00894
00900 virtual HIKtView GetHIKtView( char *pName );
00901
00903
00908 virtual bool SetView( char *pName, HFBVisualComponent pComponent );
00909 virtual bool SetView( char *pName, FBVisualComponent &pComponent );
00911
00923 virtual bool SetBorder ( char *pName, FBBorderStyle pType, bool pShowTitle,
00924 bool pInSet, int pWidth, int pSpacing,
00925 float pMaxAngle, int pCornerRadius );
00926
00932 virtual bool SetSplitStyle ( char *pName, FBSplitStyle pRegionType );
00933
00938 virtual FBSplitStyle GetSplitStyle ( char *pName );
00939
00945 virtual bool SetRegionTitle ( char *pName, char* pTitle );
00946
00950 void SetAutoRestructure( bool pAutoRestructure );
00951
00955 void Restructure( bool pNoMove );
00956
00957 IObject_Declare(Implementation);
00958
00959
00960 FBPropertyEvent OnInput;
00961 FBPropertyEvent OnPaint;
00962 FBPropertyEvent OnIdle;
00963 FBPropertyEvent OnShow;
00964 FBPropertyEvent OnResize;
00965 };
00966
00968
00970 __FB_FORWARD( FBTabPanel );
00971
00973 class FBSDK_DLL FBTabPanel : public FBVisualComponent {
00974 __FBClassDeclare( FBTabPanel,FBVisualComponent );
00975 public:
00977 FBTabPanel();
00978
00979 FBPropertyStringList Items;
00980 FBPropertyInt ItemIndex;
00981 FBPropertyInt TabStyle;
00982 FBPropertyLayout Layout;
00983 FBPropertyEvent OnChange;
00984 };
00985
00987
00989 __FB_FORWARD( FBButton );
00990
00994 enum FBButtonStyle {
00995 kFBPushButton,
00996 kFBBitmapButton,
00997 kFBRadioButton,
00998 kFB2States,
00999 kFBCheckbox=kFB2States,
01000 kFBBitmap2States
01001 };
01002
01006 enum FBButtonState {
01007 kFBButtonState0,
01008 kFBButtonState1
01009 };
01010
01011 FB_DEFINE_ENUM( FBSDK_DLL, ButtonStyle );
01012
01014 enum FBTextJustify {
01015 kFBTextJustifyLeft,
01016 kFBTextJustifyRight,
01017 kFBTextJustifyCenter
01018 };
01019
01020 FB_DEFINE_ENUM( FBSDK_DLL, TextJustify );
01021
01023 enum FBTextStyle {
01024 kFBTextStyleNone = 0,
01025 kFBTextStyleBold = 1 << 0,
01026 kFBTextStyleItalic = 1 << 1,
01027 kFBTextStyleUnderlined = 1 << 2
01028 };
01029
01030 FB_DEFINE_ENUM( FBSDK_DLL, TextStyle );
01031
01033 enum FBButtonLook {
01034 kFBLookNormal,
01035 kFBLookColorChange,
01036 kFBLookPush,
01037 kFBLookFlat,
01038 kFBLookAlphaBackground=99
01039 };
01040
01041 FB_DEFINE_ENUM( FBSDK_DLL, ButtonLook );
01042
01049 class FBSDK_DLL FBButton : public FBVisualComponent {
01050 __FBClassDeclare( FBButton,FBVisualComponent );
01051 public:
01053 FBButton();
01054
01060 FBColor GetStateColor( FBButtonState pState );
01061
01066 void SetStateColor( FBButtonState pState, const FBColor& pColor );
01067
01073 void SetImageFileNames( const char* pUpImage, const char* pDownImage = 0, const char* pThirdImage = 0 );
01074
01078 void HookToButton(FBButton* pButton);
01079
01080 FBPropertyInt State;
01081 FBPropertyButtonStyle Style;
01082 FBPropertyTextJustify Justify;
01083 FBPropertyButtonLook Look;
01084
01085 FBPropertyEvent OnClick;
01086 FBPropertyEvent OnDragAndDrop;
01087 };
01088
01090
01092 __FB_FORWARD( FBArrowButton );
01093
01100 class FBSDK_DLL FBArrowButton : public FBVisualComponent {
01101 __FBClassDeclare( FBArrowButton, FBVisualComponent );
01102 public:
01104 FBArrowButton();
01105
01113 void SetContent( const char* pTitle, HFBVisualComponent pContent, int pContentWidth, int pContentHeight );
01114 };
01115
01117
01119 __FB_FORWARD( FBScrollBox);
01120
01127 class FBSDK_DLL FBScrollBox : public FBVisualComponent {
01128 __FBClassDeclare( FBScrollBox, FBVisualComponent );
01129 public:
01131 FBScrollBox();
01132
01136 void SetContentWidth( int pContentWidth );
01137
01141 void SetContentHeight(int pContentHeight );
01142
01147 HFBLayout GetContent();
01148 private:
01149 FBLayout mLayout;
01150 };
01151
01152
01154
01156 __FB_FORWARD( FBLabel );
01157
01159 class FBSDK_DLL FBLabel : public FBVisualComponent {
01160 __FBClassDeclare( FBLabel,FBVisualComponent );
01161 public:
01163 FBLabel();
01164
01169 void SetTextColor(const FBColorAndAlpha& pColorRGBA);
01170
01175 void SetBackgroundDrawing(bool pDrawBackGround);
01176
01177 FBPropertyTextJustify Justify;
01178 FBPropertyTextStyle Style;
01179 FBPropertyBool WordWrap;
01180 };
01181
01183
01185 __FB_FORWARD( FBImageContainer );
01186
01188 class FBSDK_DLL FBImageContainer : public FBVisualComponent {
01189 __FBClassDeclare( FBImageContainer,FBVisualComponent );
01190 public:
01192 FBImageContainer();
01193
01194 FBPropertyString Filename;
01195 FBPropertyInt ImageWidth;
01196 FBPropertyInt ImageHeight;
01197
01198 FBPropertyEvent OnDragAndDrop;
01199 };
01200
01202
01204 __FB_FORWARD( FBEdit );
01205
01207 class FBSDK_DLL FBEdit : public FBVisualComponent {
01208 __FBClassDeclare( FBEdit,FBVisualComponent );
01209 public:
01211 FBEdit(HIObject pObject=NULL);
01212
01213 FBPropertyString Text;
01214 FBPropertyBool PasswordMode;
01215
01216 FBPropertyEvent OnChange;
01217 FBPropertyEvent OnTransaction;
01218 };
01219
01221
01223 __FB_FORWARD( FBEditNumber );
01224
01226 class FBSDK_DLL FBEditNumber : public FBVisualComponent {
01227 __FBClassDeclare( FBEditNumber,FBVisualComponent );
01228 public:
01230 FBEditNumber();
01231
01232 FBPropertyDouble Value;
01233 FBPropertyDouble Min;
01234 FBPropertyDouble Max;
01235 FBPropertyDouble Precision;
01236 FBPropertyDouble LargeStep;
01237 FBPropertyDouble SmallStep;
01238
01239 FBPropertyEvent OnChange;
01240 };
01241
01243
01245 __FB_FORWARD( FBEditColor );
01246
01248 class FBSDK_DLL FBEditColor : public FBVisualComponent {
01249 __FBClassDeclare( FBEditColor,FBVisualComponent );
01250 public:
01252 FBEditColor();
01253
01254 FBPropertyColor Value;
01255 FBPropertyInt ColorMode;
01256
01257 FBPropertyEvent OnChange;
01258 };
01259
01261
01263 __FB_FORWARD( FBEditVector );
01264
01266 class FBSDK_DLL FBEditVector : public FBVisualComponent {
01267 __FBClassDeclare( FBEditVector,FBVisualComponent );
01268 public:
01270 FBEditVector();
01271
01272 FBPropertyVector3d Value;
01273
01274 FBPropertyEvent OnChange;
01275 };
01276
01277 __FB_FORWARD( FBEventDblClick );
01278
01280 class FBSDK_DLL FBEventDblClick : public FBEvent
01281 {
01282 public:
01286 FBEventDblClick( HKEventBase pEvent );
01287
01288 FBPropertyInt Selection;
01289 };
01290
01292
01294 __FB_FORWARD( FBList );
01295
01297 enum FBListStyle {
01298 kFBDropDownList,
01299 kFBVerticalList
01300 };
01301
01302 FB_DEFINE_ENUM( FBSDK_DLL, ListStyle );
01303
01305 class FBSDK_DLL FBList : public FBVisualComponent {
01306 __FBClassDeclare( FBList,FBVisualComponent );
01307 public:
01309 FBList();
01310
01311 FBPropertyStringList Items;
01312
01313 FBPropertyInt ItemIndex;
01314 FBPropertyBool MultiSelect;
01315 FBPropertyBool ExtendedSelect;
01316 FBPropertyListStyle Style;
01317
01318 FBPropertyEvent OnChange;
01319 FBPropertyEvent OnDragAndDrop;
01320
01325 virtual bool IsSelected( int pIndex );
01326
01331 virtual void Selected( int pIndex, bool pSelected );
01332 };
01333
01335
01337 __FB_FORWARD( FBSlider );
01338
01340 class FBSDK_DLL FBSlider : public FBVisualComponent {
01341 __FBClassDeclare( FBSlider,FBVisualComponent );
01342 public:
01344 FBSlider();
01345
01346 FBPropertyDouble Min;
01347 FBPropertyDouble Max;
01348 FBPropertyDouble Value;
01349 FBPropertyOrientation Orientation;
01350 FBPropertyDouble LargeStep;
01351 FBPropertyDouble SmallStep;
01352
01353 FBPropertyEvent OnChange;
01354 FBPropertyEvent OnTransaction;
01355 };
01356
01358
01360 __FB_FORWARD( FBLayoutRegion );
01361
01363 class FBSDK_DLL FBLayoutRegion : public FBVisualComponent {
01364 __FBClassDeclare( FBLayoutRegion,FBVisualComponent );
01365 public:
01367 FBLayoutRegion();
01368 };
01369
01371
01373 __FB_FORWARD( FBThermometer );
01374
01376 class FBSDK_DLL FBThermometer : public FBVisualComponent {
01377 __FBClassDeclare( FBThermometer,FBVisualComponent );
01378 public:
01380 FBThermometer();
01381
01382 FBPropertyFloat Min;
01383 FBPropertyFloat Max;
01384 FBPropertyFloat Value;
01385
01389 void Clear();
01390 };
01391
01393
01395 __FB_FORWARD( FBSpread );
01396
01398 enum FBCellStyle {
01399 kFBCellStyleDefault,
01400 kFBCellStyleString,
01401 kFBCellStyleDouble,
01402 kFBCellStyleInteger,
01403 kFBCellStyleButton,
01404 kFBCellStyle2StatesButton,
01405 kFBCellStyle3StatesButton,
01406 kFBCellStyleMenu,
01407 kFBCellStyleVoid,
01408 kFBCellStyleView,
01409 kFBCellStyleTime
01410 };
01411
01412 FB_DEFINE_ENUM( FBSDK_DLL, CellStyle );
01413
01414 __FB_FORWARD( FBSpreadPart );
01415
01419 class FBSDK_DLL FBSpreadPart : public FBComponent {
01420 __FBClassDeclare( FBSpreadPart,FBComponent );
01421 protected:
01426 FBSpreadPart( HFBSpread pParent );
01427
01428 public:
01429 FBPropertyInt Row;
01430 FBPropertyInt Column;
01431 FBPropertyBool ReadOnly;
01432 FBPropertyBool Enabled;
01433 FBPropertyCellStyle Style;
01434 FBPropertyTextJustify Justify;
01435
01439 FBSpread* GetSpread();
01440 };
01441
01442 __FB_FORWARD( FBSpreadCell );
01443
01445 class FBSDK_DLL FBSpreadCell : public FBSpreadPart {
01446 __FBClassDeclare( FBSpreadCell, FBSpreadPart );
01447 public:
01448
01454 FBSpreadCell( HFBSpread pParent, kReference pRow, int pCol );
01455 };
01456
01457 __FB_FORWARD( FBSpreadRow );
01458
01460 class FBSDK_DLL FBSpreadRow : public FBSpreadPart {
01461 __FBClassDeclare( FBSpreadRow,FBSpreadPart );
01462 public:
01467 FBSpreadRow( HFBSpread pParent, kReference pRow );
01468
01470 virtual void Remove();
01471
01476 virtual bool EditCaption();
01477
01478 FBPropertyString Caption;
01479 FBPropertykReference Parent;
01480 FBPropertyBool RowSelected;
01481 };
01482
01483 __FB_FORWARD( FBSpreadColumn );
01484
01486 class FBSDK_DLL FBSpreadColumn : public FBSpreadPart {
01487 __FBClassDeclare( FBSpreadColumn,FBSpreadPart );
01488 public:
01493 FBSpreadColumn( HFBSpread pParent, int pCol );
01494
01495 FBPropertyString Caption;
01496 FBPropertyInt Width;
01497 FBPropertyTextJustify Justify;
01498 };
01499
01501 class FBSDK_DLL FBSpread : public FBVisualComponent {
01502 __FBClassDeclare( FBSpread,FBVisualComponent );
01503 public:
01506 FBSpread();
01507
01508 FBPropertyString Caption;
01509 FBPropertykReference Row;
01510 FBPropertyInt Column;
01511 FBPropertyBool MultiSelect;
01512
01513 FBPropertyEvent OnCellChange;
01514 FBPropertyEvent OnRowClick;
01515 FBPropertyEvent OnColumnClick;
01516 FBPropertyEvent OnDragAndDrop;
01517
01522 virtual void RowAdd( char * pString, kReference pRef=0 );
01523
01527 virtual void RowSort( bool pAscending=true );
01528
01533 virtual void ColumnAdd( char * pString, kReference pRef=0 );
01534
01538 virtual FBSpreadCell GetCurrentCell();
01539
01545 virtual FBSpreadCell GetCell( kReference pRef,int pColumn );
01546
01551 virtual FBSpreadColumn GetColumn( int pColumn );
01552
01557 virtual FBSpreadRow GetRow( kReference pRef );
01558
01564 virtual void SetCell( kReference pRef,int pColumn, char* pString );
01565
01567
01572 virtual void SetCell( kReference pRef,int pColumn, int pValue );
01573 virtual void SetCell( kReference pRef,int pColumn, kLongLong pValue );
01574 virtual void SetCell( kReference pRef,int pColumn, double pValue );
01576
01582 virtual void GetCell( kReference pRef,int pColumn, char* &pString );
01583
01585
01590 virtual void GetCell( kReference pRef,int pColumn, int &pValue );
01591 virtual void GetCell( kReference pRef,int pColumn, kLongLong &pValue );
01592 virtual void GetCell( kReference pRef,int pColumn, double &pValue );
01594
01600 virtual void SetCellView( kReference pRef,int pColumn, HIKtView pView );
01601
01607 virtual void GetCellView( kReference pRef,int pColumn, HIKtView &pView );
01608
01612 virtual void Clear();
01613 };
01614
01615 __FB_FORWARD( FBEventSpread );
01616
01618 class FBSDK_DLL FBEventSpread : public FBEvent
01619 {
01620 public:
01624 FBEventSpread( HKEventBase pEvent );
01625
01626 FBPropertyInt Row;
01627 FBPropertyInt Column;
01628
01632 FBPropertyInt Action;
01633 };
01634
01636
01638 __FB_FORWARD( FBContainer );
01639
01641 enum FBIconPosition {
01642 kFBIconLeft,
01643 kFBIconTop,
01644 };
01645
01646 FB_DEFINE_ENUM( FBSDK_DLL, IconPosition );
01647
01649 class FBSDK_DLL FBContainer : public FBVisualComponent {
01650 __FBClassDeclare( FBContainer,FBVisualComponent );
01651 public:
01654 FBContainer();
01655
01662 virtual bool ItemIconSet( kReference pRef, HFBImageContainer pImage, bool pUseACopyOfTheImage=true );
01663
01669 virtual bool ItemIconSet( kReference pRef, char *pFilename );
01670
01675 virtual bool ItemNameEdit( kReference pRef );
01676
01680 virtual int GetSelection();
01681
01682 FBPropertyStringList Items;
01683
01684 FBPropertyInt ItemIndex;
01685 FBPropertyOrientation Orientation;
01686 FBPropertyBool ItemWrap;
01687 FBPropertyIconPosition IconPosition;
01688 FBPropertyInt ItemWidth;
01689 FBPropertyInt ItemHeight;
01690
01691 FBPropertyEvent OnChange;
01692 FBPropertyEvent OnDblClick;
01693 FBPropertyEvent OnDragAndDrop;
01694 };
01695
01697
01699 __FB_FORWARD( FBEditTimeCode );
01700
01701 class FBSDK_DLL FBEditTimeCode : public FBVisualComponent {
01702 __FBClassDeclare( FBEditTimeCode,FBVisualComponent );
01703 public:
01706 FBEditTimeCode();
01707
01708 FBPropertyTime Value;
01709
01710 FBPropertyEvent OnChange;
01711 };
01712
01714
01716 __FB_FORWARD( FBTreeNode );
01717 __FB_FORWARD( FBTree );
01718
01720
01722 __FB_FORWARD( FBEventTree );
01723
01725 enum FBEventTreeWhy
01726 {
01727 kFBEventTreeExpand,
01728 kFBEventTreeCollapse,
01729 kFBEventTreeHideNode,
01730 kFBEventTreeUnhideNode
01731 };
01732
01733 FB_DEFINE_ENUM( FBSDK_DLL, EventTreeWhy );
01734
01736 class FBSDK_DLL FBEventTree : public FBEvent
01737 {
01738 public:
01742 FBEventTree( HKEventBase pEvent );
01743
01744 FBPropertyEventTreeWhy Why;
01745 FBPropertyTreeNode TreeNode;
01746 };
01747
01748 __FB_FORWARD( FBEventTreeSelect );
01749
01751 class FBSDK_DLL FBEventTreeSelect : public FBEvent
01752 {
01753 public:
01757 FBEventTreeSelect( HKEventBase pEvent );
01758 FBPropertyTreeNode TreeNode;
01759 };
01760
01762 class FBSDK_DLL FBTreeNode : public FBComponent
01763 {
01764 __FBClassDeclare( FBTreeNode,FBComponent );
01765 public:
01770 FBTreeNode(HFBTree pTree, HIObject pObject);
01771
01772 FBPropertykReference Reference;
01773 FBPropertyBool Checked;
01774 };
01775
01777 class FBSDK_DLL FBTree : public FBVisualComponent
01778 {
01779 __FBClassDeclare( FBTree,FBVisualComponent );
01780 public:
01782 FBTree();
01783
01787 HFBTreeNode GetRoot();
01788
01791 void Clear();
01792
01798 HFBTreeNode InsertLast( HFBTreeNode pNode, char* pName );
01799
01800 FBPropertyEvent OnSelect;
01801
01802 FBPropertyEvent OnClick;
01803 FBPropertyEvent OnClickCheck;
01804 FBPropertyEvent OnDblClick;
01805 FBPropertyEvent OnDeselect;
01806 FBPropertyEvent OnExpanded;
01807 FBPropertyEvent OnExpanding;
01808 FBPropertyEvent OnCollapsed;
01809 FBPropertyEvent OnCollapsing;
01810 FBPropertyEvent OnChange;
01811 FBPropertyEvent OnDragAndDrop;
01812 FBPropertyEvent OnEditNode;
01813
01814 FBPropertyInt SelectedCount;
01815 FBPropertyInt VisibleItemCount;
01816 FBPropertyBool AllowExpansion;
01817 FBPropertyBool AllowCollapse;
01818 FBPropertyBool MultiDrag;
01819 FBPropertyBool AutoScroll;
01820 FBPropertyInt Indent;
01821 FBPropertyBool CheckBoxes;
01822 FBPropertyBool ShowLines;
01823 FBPropertyInt ItemHeight;
01824 FBPropertyBool MultiSelect;
01825 FBPropertyBool EditNodeOn2Select;
01826 FBPropertyInt TreeHeight;
01827 FBPropertyInt TreeWidth;
01828 FBPropertyBool SelectionActive;
01829 FBPropertyBool DeselectOnCollapse;
01830 FBPropertyBool NoSelectOnDrag;
01831 FBPropertyBool NoSelectOnRightClick;
01832 FBPropertyBool HighlightOnRightClick;
01833 FBPropertyBool AutoScrollOnExpand;
01834 FBPropertyBool AutoExpandOnDragOver;
01835 FBPropertyBool AutoExpandOnDblClick;
01836 };
01837
01839
01841 __FB_FORWARD( FBView );
01842
01844 class FBSDK_DLL FBView : public FBVisualComponent {
01845 __FBClassDeclare( FBView,FBVisualComponent );
01846 public:
01849 FBView();
01850
01851 IObject_Declare(Implementation);
01852
01856 virtual void Refresh(bool pNow=false);
01857
01861 virtual bool IsView();
01862
01869 virtual void DrawString(char *pText,float pX,float pY, int pEnable=-1);
01870
01878 virtual bool SetViewport(int pX,int pY,int pW,int pH);
01879
01880 FBPropertyBool GraphicOGL;
01881 FBPropertyBool DoubleBuffer;
01882 };
01883
01885
01887 __FB_FORWARD( FBProgress );
01888
01890 class FBSDK_DLL FBProgress : public FBVisualComponent {
01891 __FBClassDeclare( FBProgress,FBVisualComponent );
01892 public:
01895 FBProgress();
01896
01899 void ProgressBegin();
01902 void ProgressDone();
01903
01907 bool UserRequestCancell();
01908
01909 FBPropertyString Caption;
01910 FBPropertyString Text;
01911 FBPropertyInt Percent;
01912 };
01913
01915
01917 __FB_FORWARD( FBPopup );
01918
01922 class FBSDK_DLL FBPopup : public FBLayout {
01923 __FBClassDeclare( FBPopup,FBLayout );
01924 public:
01927 FBPopup();
01928
01933 virtual bool Show( HFBVisualComponent pParent=NULL );
01934
01938 virtual void Close(bool pOk=false);
01939
01940 FBPropertyString Caption;
01941 FBPropertyBool Modal;
01942 };
01943
01945
01947 __FB_FORWARD( FBFilePopup );
01948
01950 enum FBFilePopupStyle {
01951 kFBFilePopupOpen,
01952 kFBFilePopupSave
01953 };
01954
01955 FB_DEFINE_ENUM( FBSDK_DLL, FilePopupStyle );
01956
01958 class FBSDK_DLL FBFilePopup : public FBVisualComponent {
01959 __FBClassDeclare( FBFilePopup,FBVisualComponent );
01960 public:
01963 FBFilePopup();
01964
01968 virtual bool Execute();
01969
01970 FBPropertyString Caption;
01971 FBPropertyString FileName;
01972 FBPropertyString Path;
01973 FBPropertyString FullFilename;
01974 FBPropertyString Filter;
01975 FBPropertyFilePopupStyle Style;
01976 };
01977
01979
01981 __FB_FORWARD( FBFolderPopup );
01982
01984 class FBSDK_DLL FBFolderPopup : public FBVisualComponent {
01985 __FBClassDeclare( FBFolderPopup,FBVisualComponent );
01986 public:
01989 FBFolderPopup();
01990
01994 virtual bool Execute();
01995
01996 FBPropertyString Caption;
01997 FBPropertyString Path;
01998 };
01999
02012 FBSDK_DLL int FBMessageBox( char* pBoxTitle, char* pMessage, char* pButton1Str, char* pButton2Str=NULL, char* pButton3Str=NULL, int pDefaultButton=0, int pScrolledMessage=0);
02013
02028 FBSDK_DLL int FBMessageBoxWithCheck( char* pBoxTitle, char* pMessage, char* pButton1Str, char* pButton2Str, char* pButton3Str, char* pCheckBoxStr, bool& pCheckBoxValue, int pDefaultButton=0, int pScrolledMessage=0);
02029
02031 enum FBPopupInputType{
02032 kFBPopupBool,
02033 kFBPopupChar,
02034 kFBPopupString,
02035 kFBPopupInt,
02036 kFBPopupFloat,
02037 kFBPopupDouble,
02038 kFBPopupPassword
02039 };
02040
02056 FBSDK_DLL int FBMessageBoxGetUserValue( char* pBoxTitle, char* pMessage, void* pValue, FBPopupInputType pValueType, char* pButton1Str, char* pButton2Str=NULL, char* pButton3Str=NULL, int pDefaultButton=0, bool pLastButtonCancel = true );
02057
02059
02061 __FB_FORWARD( FBMemo );
02062
02064 class FBSDK_DLL FBMemo : public FBEdit {
02065 __FBClassDeclare( FBMemo,FBEdit );
02066 public:
02068 FBMemo();
02069
02073 void SetStrings(HFBStringList pLines);
02074
02078 void GetStrings(HFBStringList pLines);
02079 };
02080
02081
02083
02085 __FB_FORWARD( FBFCurveEditor );
02086
02088 class FBSDK_DLL FBFCurveEditor : public FBVisualComponent {
02089 __FBClassDeclare( FBFCurveEditor,FBVisualComponent );
02090 public:
02092 FBFCurveEditor();
02093
02097 void AddAnimationNode(FBAnimationNode* pNode);
02101 void RemoveAnimationNode(FBAnimationNode* pNode);
02102
02106 void AddProperty(FBPropertyAnimatable* pProperty);
02110 void RemoveProperty(FBPropertyAnimatable* pProperty);
02111
02114 void Clear();
02115 };
02116
02118
02120 __FB_FORWARD( FBPropertyConnectionEditor );
02121
02123 class FBSDK_DLL FBPropertyConnectionEditor : public FBVisualComponent {
02124 __FBClassDeclare( FBPropertyConnectionEditor,FBVisualComponent );
02125 public:
02127 FBPropertyConnectionEditor();
02128
02131 void PopupTree();
02132
02135 void PopupList();
02136
02137 FBPropertyReference Property;
02138 };
02139
02141
02143 __FB_FORWARD( FBEditProperty );
02144
02187 class FBSDK_DLL FBEditProperty : public FBVisualComponent {
02188 __FBClassDeclare( FBEditProperty, FBVisualComponent );
02189 public:
02191 FBEditProperty();
02192
02193 FBPropertyReference Property;
02194
02195 FBPropertyDouble SliderMin;
02196 FBPropertyDouble SliderMax;
02197 FBPropertyDouble SmallInc;
02198 FBPropertyDouble LargeInc;
02199 FBPropertyDouble Precision;
02200 FBPropertyInt CaptionSize;
02201 };
02202
02203
02205
02207 __FB_FORWARD( FBEditPropertyModern );
02208
02215 class FBSDK_DLL FBEditPropertyModern : public FBVisualComponent {
02216 __FBClassDeclare( FBEditPropertyModern, FBVisualComponent );
02217 public:
02219 FBEditPropertyModern();
02220
02225 void SetBackgroundColorIndex( FBColorIndex pIndex );
02226
02227 FBPropertyReference Property;
02228
02229 FBPropertyDouble SliderMin;
02230 FBPropertyDouble SliderMax;
02231 FBPropertyDouble SmallInc;
02232 FBPropertyDouble LargeInc;
02233 FBPropertyDouble Precision;
02234 };
02235
02237
02239 __FB_FORWARD( FBBrowsingProperty );
02240
02242 class FBSDK_DLL FBBrowsingProperty : public FBVisualComponent {
02243 __FBClassDeclare( FBBrowsingProperty,FBVisualComponent );
02244 public:
02247 FBBrowsingProperty();
02248
02252 void AddObject(HFBPlug pObject);
02253
02257 void RemoveObject(HFBPlug pObject);
02258
02262 int ObjectGetCount();
02263
02268 HFBPlug ObjectGet(int pIndex);
02269
02276 int AddButtonInToolbar(char* pCaption, HICallback pOwner, kICallbackHandler pHandler);
02277
02278 };
02279
02281
02283 __FB_FORWARD( FBWidgetHolder );
02284
02286 class FBSDK_DLL FBWidgetHolder : public FBVisualComponent {
02287 __FBClassDeclare( FBWidgetHolder, FBVisualComponent );
02288 public:
02289
02291 typedef void* (*WidgetCreator)(void* pParent);
02292
02295 FBWidgetHolder();
02296
02304 void SetCreator(WidgetCreator pCreatorFunction );
02305 };
02306
02308
02310 FB_FORWARD( FBPlotOptions );
02311 __FB_FORWARD( FBPlotPopup );
02312
02314 class FBSDK_DLL FBPlotPopup : public FBVisualComponent {
02315 __FBClassDeclare( FBPlotPopup,FBVisualComponent );
02316 public:
02319 FBPlotPopup();
02320
02324 virtual bool Popup(char* pWindowName);
02325
02329 FBPlotOptions GetPlotOptions();
02330
02331 FBPropertyBool EnablePlotTranslationOnRootOnly;
02332 FBPropertyBool EnableSmartPlotControls;
02333 FBPropertyBool EnablePlotCharacterExtension;
02334 };
02335
02336 #endif //}
02337
02338
02339 #ifdef FBSDKUseNamespace
02340 }
02341 #endif
02342
02343 #endif