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
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 Width;
01196 FBPropertyInt Height;
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( FBTimeCode );
01700
01701 class FBSDK_DLL FBTimeCode : public FBVisualComponent {
01702 __FBClassDeclare( FBTimeCode,FBVisualComponent );
01703 public:
01706 FBTimeCode();
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 };
01774
01776 class FBSDK_DLL FBTree : public FBVisualComponent
01777 {
01778 __FBClassDeclare( FBTree,FBVisualComponent );
01779 public:
01781 FBTree();
01782
01786 HFBTreeNode GetRoot();
01787
01790 void Clear();
01791
01797 HFBTreeNode InsertLast( HFBTreeNode pNode, char* pName );
01798
01799 FBPropertyEvent OnSelect;
01800
01801 FBPropertyEvent OnClick;
01802 FBPropertyEvent OnDblClick;
01803 FBPropertyEvent OnDeselect;
01804 FBPropertyEvent OnExpanded;
01805 FBPropertyEvent OnExpanding;
01806 FBPropertyEvent OnCollapsed;
01807 FBPropertyEvent OnCollapsing;
01808 FBPropertyEvent OnChange;
01809 FBPropertyEvent OnDragAndDrop;
01810 FBPropertyEvent OnEditNode;
01811
01812 FBPropertyInt SelectedCount;
01813 FBPropertyInt VisibleItemCount;
01814 FBPropertyBool AllowExpansion;
01815 FBPropertyBool AllowCollapse;
01816 FBPropertyBool MultiDrag;
01817 FBPropertyBool AutoScroll;
01818 FBPropertyInt Indent;
01819 FBPropertyBool CheckBoxes;
01820 FBPropertyBool ShowLines;
01821 FBPropertyInt ItemHeight;
01822 FBPropertyBool MultiSelect;
01823 FBPropertyBool EditNodeOn2Select;
01824 FBPropertyInt TreeHeight;
01825 FBPropertyInt TreeWidth;
01826 FBPropertyBool SelectionActive;
01827 FBPropertyBool DeselectOnCollapse;
01828 FBPropertyBool NoSelectOnDrag;
01829 FBPropertyBool NoSelectOnRightClick;
01830 FBPropertyBool HighlightOnRightClick;
01831 FBPropertyBool AutoScrollOnExpand;
01832 FBPropertyBool AutoExpandOnDragOver;
01833 FBPropertyBool AutoExpandOnDblClick;
01834 };
01835
01837
01839 __FB_FORWARD( FBView );
01840
01842 class FBSDK_DLL FBView : public FBVisualComponent {
01843 __FBClassDeclare( FBView,FBVisualComponent );
01844 public:
01847 FBView();
01848
01849 IObject_Declare(Implementation);
01850
01854 virtual void Refresh(bool pNow=false);
01855
01859 virtual bool IsView();
01860
01867 virtual void DrawString(char *pText,float pX,float pY, int pEnable=-1);
01868
01876 virtual bool SetViewport(int pX,int pY,int pW,int pH);
01877
01878 FBPropertyBool GraphicOGL;
01879 FBPropertyBool DoubleBuffer;
01880 };
01881
01883
01885 __FB_FORWARD( FBProgress );
01886
01888 class FBSDK_DLL FBProgress : public FBVisualComponent {
01889 __FBClassDeclare( FBProgress,FBVisualComponent );
01890 public:
01893 FBProgress();
01894
01897 void ProgressBegin();
01900 void ProgressDone();
01901
01905 bool UserRequestCancell();
01906
01907 FBPropertyString Caption;
01908 FBPropertyString Text;
01909 FBPropertyInt Percent;
01910 };
01911
01913
01915 __FB_FORWARD( FBPopup );
01916
01920 class FBSDK_DLL FBPopup : public FBLayout {
01921 __FBClassDeclare( FBPopup,FBLayout );
01922 public:
01925 FBPopup();
01926
01931 virtual bool Show( HFBVisualComponent pParent=NULL );
01932
01936 virtual void Close(bool pOk=false);
01937
01938 FBPropertyString Caption;
01939 FBPropertyBool Modal;
01940 };
01941
01943
01945 __FB_FORWARD( FBFilePopup );
01946
01948 enum FBFilePopupStyle {
01949 kFBFilePopupOpen,
01950 kFBFilePopupSave
01951 };
01952
01953 FB_DEFINE_ENUM( FBSDK_DLL, FilePopupStyle );
01954
01956 class FBSDK_DLL FBFilePopup : public FBVisualComponent {
01957 __FBClassDeclare( FBFilePopup,FBVisualComponent );
01958 public:
01961 FBFilePopup();
01962
01966 virtual bool Execute();
01967
01968 FBPropertyString Caption;
01969 FBPropertyString FileName;
01970 FBPropertyString Path;
01971 FBPropertyString FullFilename;
01972 FBPropertyString Filter;
01973 FBPropertyFilePopupStyle Style;
01974 };
01975
01977
01979 __FB_FORWARD( FBFolderPopup );
01980
01982 class FBSDK_DLL FBFolderPopup : public FBVisualComponent {
01983 __FBClassDeclare( FBFolderPopup,FBVisualComponent );
01984 public:
01987 FBFolderPopup();
01988
01992 virtual bool Execute();
01993
01994 FBPropertyString Caption;
01995 FBPropertyString Path;
01996 };
01997
02010 FBSDK_DLL int FBMessageBox( char* pBoxTitle, char* pMessage, char* pButton1Str, char* pButton2Str=NULL, char* pButton3Str=NULL, int pDefaultButton=0, int pScrolledMessage=0);
02011
02026 FBSDK_DLL int FBMessageBoxWithCheck( char* pBoxTitle, char* pMessage, char* pButton1Str, char* pButton2Str, char* pButton3Str, char* pCheckBoxStr, bool& pCheckBoxValue, int pDefaultButton=0, int pScrolledMessage=0);
02027
02029 enum FBPopupInputType{
02030 kFBPopupBool,
02031 kFBPopupChar,
02032 kFBPopupString,
02033 kFBPopupInt,
02034 kFBPopupFloat,
02035 kFBPopupDouble,
02036 kFBPopupPassword
02037 };
02038
02054 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 );
02055
02057
02059 __FB_FORWARD( FBMemo );
02060
02062 class FBSDK_DLL FBMemo : public FBEdit {
02063 __FBClassDeclare( FBMemo,FBEdit );
02064 public:
02066 FBMemo();
02067
02071 void SetStrings(HFBStringList pLines);
02072
02076 void GetStrings(HFBStringList pLines);
02077 };
02078
02079
02081
02083 __FB_FORWARD( FBFCurveEditor );
02084
02086 class FBSDK_DLL FBFCurveEditor : public FBVisualComponent {
02087 __FBClassDeclare( FBFCurveEditor,FBVisualComponent );
02088 public:
02090 FBFCurveEditor();
02091
02095 void AddAnimationNode(FBAnimationNode* pNode);
02099 void RemoveAnimationNode(FBAnimationNode* pNode);
02100
02104 void AddProperty(FBPropertyAnimatable* pProperty);
02108 void RemoveProperty(FBPropertyAnimatable* pProperty);
02109
02112 void Clear();
02113 };
02114
02116
02118 __FB_FORWARD( FBPropertyConnectionEditor );
02119
02121 class FBSDK_DLL FBPropertyConnectionEditor : public FBVisualComponent {
02122 __FBClassDeclare( FBPropertyConnectionEditor,FBVisualComponent );
02123 public:
02125 FBPropertyConnectionEditor();
02126
02129 void PopupTree();
02130
02133 void PopupList();
02134
02135 FBPropertyReference Property;
02136 };
02137
02139
02141 __FB_FORWARD( FBEditProperty );
02142
02185 class FBSDK_DLL FBEditProperty : public FBVisualComponent {
02186 __FBClassDeclare( FBEditProperty, FBVisualComponent );
02187 public:
02189 FBEditProperty();
02190
02191 FBPropertyReference Property;
02192
02193 FBPropertyDouble SliderMin;
02194 FBPropertyDouble SliderMax;
02195 FBPropertyDouble SmallInc;
02196 FBPropertyDouble LargeInc;
02197 FBPropertyDouble Precision;
02198 FBPropertyInt CaptionSize;
02199 };
02200
02201
02203
02205 __FB_FORWARD( FBEditPropertyModern );
02206
02213 class FBSDK_DLL FBEditPropertyModern : public FBVisualComponent {
02214 __FBClassDeclare( FBEditPropertyModern, FBVisualComponent );
02215 public:
02217 FBEditPropertyModern();
02218
02223 void SetBackgroundColorIndex( FBColorIndex pIndex );
02224
02225 FBPropertyReference Property;
02226
02227 FBPropertyDouble SliderMin;
02228 FBPropertyDouble SliderMax;
02229 FBPropertyDouble SmallInc;
02230 FBPropertyDouble LargeInc;
02231 FBPropertyDouble Precision;
02232 };
02233
02235
02237 __FB_FORWARD( FBBrowsingProperty );
02238
02240 class FBSDK_DLL FBBrowsingProperty : public FBVisualComponent {
02241 __FBClassDeclare( FBBrowsingProperty,FBVisualComponent );
02242 public:
02245 FBBrowsingProperty();
02246
02250 void AddObject(HFBPlug pObject);
02251
02255 void RemoveObject(HFBPlug pObject);
02256
02260 int ObjectGetCount();
02261
02266 HFBPlug ObjectGet(int pIndex);
02267
02274 int AddButtonInToolbar(char* pCaption, HICallback pOwner, kICallbackHandler pHandler);
02275
02276 };
02277
02279
02281 __FB_FORWARD( FBWidgetHolder );
02282
02284 class FBSDK_DLL FBWidgetHolder : public FBVisualComponent {
02285 __FBClassDeclare( FBWidgetHolder, FBVisualComponent );
02286 public:
02287
02289 typedef void* (*WidgetCreator)(void* pParent);
02290
02293 FBWidgetHolder();
02294
02302 void SetCreator(WidgetCreator pCreatorFunction );
02303 };
02304
02306
02308 FB_FORWARD( FBPlotOptions );
02309 __FB_FORWARD( FBPlotPopup );
02310
02312 class FBSDK_DLL FBPlotPopup : public FBVisualComponent {
02313 __FBClassDeclare( FBPlotPopup,FBVisualComponent );
02314 public:
02317 FBPlotPopup();
02318
02322 virtual bool Popup(char* pWindowName);
02323
02327 FBPlotOptions GetPlotOptions();
02328
02329 FBPropertyBool EnablePlotTranslationOnRootOnly;
02330 FBPropertyBool EnableSmartPlotControls;
02331 FBPropertyBool EnablePlotCharacterExtension;
02332 };
02333
02334 #endif //}
02335
02336
02337 #ifdef FBSDKUseNamespace
02338 }
02339 #endif
02340
02341 #endif