fbcontrols.h

Go to the documentation of this file.
00001 #ifndef __FBCONTROLS_H__
00002 #define __FBCONTROLS_H__
00003 /**************************************************************************
00004  Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
00005  All Rights Reserved.
00006  
00007  The coded instructions, statements, computer programs, and/or related 
00008  material (collectively the "Data") in these files contain unpublished 
00009  information proprietary to Autodesk, Inc. and/or its licensors, which is 
00010  protected by Canada and United States of America federal copyright law 
00011  and by international treaties.
00012  
00013  The Data may not be disclosed or distributed to third parties, in whole 
00014  or in part, without the prior written consent of Autodesk, Inc. 
00015  ("Autodesk").
00016  
00017  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
00018  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO 
00019  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR 
00020  ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES 
00021  OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 
00022  PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT 
00023  WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR 
00024  FREE.
00025  
00026  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS 
00027  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR 
00028  EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE 
00029  DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS 
00030  OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR 
00031  DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF 
00032  LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT 
00033  LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE 
00034  DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS 
00035  BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
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 /*pOwner*/,const char * /*pName*/,void * /*pData*/) \
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 // General
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 // Input type, modifiers, and keys
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     // "Traditional" colors
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     // Colors to be defined and used by skins
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     // Total number of colors
00256     kFBColorIndexSize                   
00257 };
00258 
00259 
00260 #ifndef K_DISABLE_UI
00261 
00263 // FBVisualComponent
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 ); // FBPropertyBorderStyle 
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);        // Interface to IObject
00318     ICallback_Declare(Implementation);      // Interface to ICallback
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 // FBEventInput
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 // FBEventTransaction
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 // FBEventDragAndDrop
00480 //__FB_FORWARD( FBDragAndDrop );
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 
00504     virtual ~FBEventDragAndDrop(){}
00505 
00510     virtual void Accept();
00511 
00516     virtual void Add( FBComponent* pComponent, int pId=0);
00517 
00522     virtual FBComponent* Get( int pIndex );
00523 
00525     virtual void Clear();           
00526 
00530     virtual int GetCount();
00531 
00532     //-- Properties
00533     FBPropertyDragAndDropState  State;      
00534     FBPropertyInt               PosX;       
00535     FBPropertyInt               PosY;       
00536     FBPropertykReference        Data[2];    
00537 };
00538 
00540 // FBEventShow
00542 __FB_FORWARD( FBEventShow );
00543 
00545 class FBSDK_DLL FBEventShow : public FBEvent 
00546 {
00547 public:
00551     FBEventShow( HKEventBase pEvent );      
00552 
00553     FBPropertyBool  Shown;      
00554 };
00555 
00557 // FBEventActivate
00559 __FB_FORWARD( FBEventActivate );
00560 
00562 class FBSDK_DLL FBEventActivate : public FBEvent 
00563 {
00564 public:
00568     FBEventActivate( HKEventBase pEvent );
00569 
00570     FBPropertykReference Data;              
00571 };
00572 
00574 // FBEventExpose
00576 __FB_FORWARD( FBEventExpose );
00577 
00579 class FBSDK_DLL FBEventExpose : public FBEvent 
00580 {
00581 public:
00585     FBEventExpose( HKEventBase pEvent );
00586 
00587     //FBGeometry* Data;             //!< <b>Read Write Property:</b> Generic data of event.
00588 };
00589 
00591 // FBEventResize
00593 __FB_FORWARD( FBEventResize );
00594 
00596 class FBSDK_DLL FBEventResize : public FBEvent 
00597 {
00598 public:
00602     FBEventResize( HKEventBase pEvent );
00603 
00604     FBPropertyInt Width;    
00605     FBPropertyInt Height;   
00606 };
00607 
00609 // FBEventMenu
00611 __FB_FORWARD(FBEventMenu);
00612 __FB_FORWARD(FBMenuItem);
00613 
00618 #define FBMenuItemDeclare( ClassName,Parent ) \
00619     FBClassDeclare( ClassName,Parent ); \
00620     public: \
00621         ClassName():Parent() { FBClassInit; FBCreate(); } \
00622     private:
00623 
00627 #define FBMenuItemImplementation( ThisComponent ) \
00628     FBClassImplementation( ThisComponent )
00629 
00633 #define FBRegisterMenuItem( ClassName ) \
00634     HIObject RegisterMenuItem##ClassName( HIObject /*pOwner*/,const char * /*pName*/,void * /*pData*/) \
00635     {\
00636         return NULL;\
00637     }\
00638     FBLibraryModule( ClassName )    \
00639     {   \
00640     }   \
00641     ClassName* g##ClassName;
00642 
00646 #define FBMenuItemActivation( ClassName )   \
00647     extern ClassName* g##ClassName;         \
00648     g##ClassName = new ClassName;           \
00649     g##ClassName->Activate();
00650 
00655 #define FBMenuItemHandle( ClassName, Handle )   \
00656     extern ClassName* g##ClassName;             \
00657     Handle = g##ClassName;
00658 
00660 enum FBMenuItemType {   
00661     kFBMenuItemMotionImport,    
00662     kFBMenuItemSceneImport,     
00663     kFBMenuItemMotionExport,    
00664     kFBMenuItemSceneExport      
00665 };
00666 
00667 FB_DEFINE_ENUM( FBSDK_DLL, MenuItemType );
00668 
00670 class FBSDK_DLL FBEventMenu : public FBEvent
00671 {
00672 public:
00673     FBPropertyInt       Id;         
00674     FBPropertyString    Name;       
00675 
00679     FBEventMenu( HKEventBase pEvent);
00680 };
00681 
00683 class FBSDK_DLL FBMenuItem : public FBVisualComponent
00684 {
00685     __FBClassDeclare( FBMenuItem, FBVisualComponent );
00686 
00687 public:
00689     FBMenuItem();
00690 
00697     void Set(FBMenuItemType pType, const char* pExtension, const char* pLabel, const char* pDescription);
00698 
00702     bool IsActive();
00703 
00711     void Activate( bool pState = true );
00712 
00718     virtual void OnItemSelectEvent(HIRegister pSender, HKEvent pEvent);
00719 
00720 public:
00721     FBPropertyComponent         Component;          
00722     FBPropertyString            Extension;          
00723     FBPropertyString            Label;              
00724     FBPropertyString            Description;        
00725     FBPropertyMenuItemType      Type;               
00726     
00727 public:
00735     virtual bool Execute(const char *pFilename=NULL)    = 0;
00736 };
00737 
00739 // FBLayout
00741 
00767 class FBSDK_DLL FBLayout : public FBVisualComponent {
00768     __FBClassDeclare( FBLayout,FBVisualComponent );
00769 public:
00770 
00772     enum FBSplitStyle 
00773     {   
00774         kFBNoSplit  = 0,    
00775         kFBHSplit   = 1,    
00776         kFBVSplit   = 2,    
00777         kFBHVSplit  = 3     
00778     };
00779 
00781     FBLayout(HIObject pObject=NULL);
00782 
00809     virtual bool AddRegion( const char *pName,  const char *pTitle,
00810                             int pX, FBAttachType pXType,    const char *pXRelative, float pMultX,
00811                             int pY, FBAttachType pYType,    const char *pYRelative, float pMultY,
00812                             int pW, FBAttachType pWType,    const char *pWRelative, float pMultW,
00813                             int pH, FBAttachType pHType,    const char *pHRelative, float pMultH);
00814     
00821     virtual bool MoveRegion( const char *pName, int pX, int pY );
00822 
00829     virtual bool SizeRegion( const char *pName, int pW, int pH );
00830 
00835     virtual bool RemoveRegion( const char *pName );
00836 
00842     virtual bool RenameRegion( const char *pOldName, const char *pNewName );
00843 
00848     virtual bool GetRegion( const char *pName );
00849 
00859     virtual bool GetRegionPositions (   const char *pName,  bool pComputed,
00860                                         int *pX,        int *pY, 
00861                                         int *pW=NULL,   int *pH=NULL    );
00862 
00864 
00869     virtual bool SetControl( const char *pName, HFBVisualComponent pComponent );
00870     virtual bool SetControl( const char *pName, FBVisualComponent &pComponent );
00872 
00876     virtual void ClearControl(const char *pName);
00877 
00882     virtual FBVisualComponent* GetControl(const char *pName);
00883 
00888     virtual HIKtObject GetHIKtObject( const char *pName );
00889 
00895     virtual bool SetHIKtView( const char *pName, HIKtView pView );
00896 
00902     virtual HIKtView GetHIKtView( const char *pName );
00903 
00905 
00910     virtual bool SetView( const char *pName, HFBVisualComponent pComponent );
00911     virtual bool SetView( const char *pName, FBVisualComponent &pComponent );
00913 
00925     virtual bool SetBorder  (   const char *pName,  FBBorderStyle pType,    bool pShowTitle,
00926                                 bool pInSet,        int pWidth,             int pSpacing,
00927                                 float pMaxAngle,    int pCornerRadius );
00928     
00934     virtual bool SetSplitStyle ( const char *pName, FBSplitStyle pRegionType );
00935 
00940     virtual FBSplitStyle GetSplitStyle ( const char *pName );
00941 
00947     virtual bool SetRegionTitle ( const char *pName, const char* pTitle );
00948     
00952     void SetAutoRestructure( bool pAutoRestructure );
00953 
00957     void Restructure( bool pNoMove );
00958     
00959     IObject_Declare(Implementation);        // Interface to IObject.
00960 
00961     //--- Events
00962     FBPropertyEvent     OnInput;        
00963     FBPropertyEvent     OnPaint;        
00964     FBPropertyEvent     OnIdle;         
00965     FBPropertyEvent     OnShow;         
00966     FBPropertyEvent     OnResize;       
00967 };
00968 
00970 // FBTabPanel
00972 __FB_FORWARD( FBTabPanel );
00973 
00975 class FBSDK_DLL FBTabPanel : public FBVisualComponent {
00976     __FBClassDeclare( FBTabPanel,FBVisualComponent );
00977 public:
00979     FBTabPanel();
00980 
00981     FBPropertyStringList    Items;          
00982     FBPropertyInt           ItemIndex;      
00983     FBPropertyInt           TabStyle;       
00984     FBPropertyLayout        Layout;         
00985     FBPropertyEvent         OnChange;       
00986 };
00987 
00989 // FBButton
00991 __FB_FORWARD( FBButton );
00992 
00996 enum FBButtonStyle {    
00997     kFBPushButton,      
00998     kFBBitmapButton,    
00999     kFBRadioButton,     
01000     kFB2States,         
01001     kFBCheckbox=kFB2States,     
01002     kFBBitmap2States    
01003 };
01004 
01008 enum FBButtonState {
01009     kFBButtonState0,    
01010     kFBButtonState1     
01011 };
01012 
01013 FB_DEFINE_ENUM( FBSDK_DLL, ButtonStyle ); 
01014 
01016 enum FBTextJustify {    
01017     kFBTextJustifyLeft,     
01018     kFBTextJustifyRight,    
01019     kFBTextJustifyCenter    
01020 };
01021 
01022 FB_DEFINE_ENUM( FBSDK_DLL, TextJustify );
01023 
01025 enum FBTextStyle {  
01026     kFBTextStyleNone        = 0,        
01027     kFBTextStyleBold        = 1 << 0,       
01028     kFBTextStyleItalic      = 1 << 1,       
01029     kFBTextStyleUnderlined  = 1 << 2    
01030 };
01031 
01032 FB_DEFINE_ENUM( FBSDK_DLL, TextStyle );
01033 
01035 enum FBButtonLook {
01036     kFBLookNormal,
01037     kFBLookColorChange,
01038     kFBLookPush,
01039     kFBLookFlat,
01040     kFBLookAlphaBackground=99
01041 };
01042 
01043 FB_DEFINE_ENUM( FBSDK_DLL, ButtonLook ); 
01044 
01051 class FBSDK_DLL FBButton : public FBVisualComponent {
01052     __FBClassDeclare( FBButton,FBVisualComponent );
01053 public:
01055     FBButton();
01056     
01062     FBColor GetStateColor( FBButtonState pState );
01063 
01068     void    SetStateColor( FBButtonState pState, const FBColor& pColor );
01069 
01076     void    SetImageFileNames( const char* pUpImage, const char* pDownImage = 0, const char* pThirdImage = 0, bool pFromResources = false );
01077 
01081     void    HookToButton(FBButton* pButton);
01082 
01083     FBPropertyInt           State;          
01084     FBPropertyButtonStyle   Style;          
01085     FBPropertyTextJustify   Justify;        
01086     FBPropertyButtonLook    Look;           
01087 
01088     FBPropertyEvent         OnClick;        
01089     FBPropertyEvent         OnDragAndDrop;  
01090 };
01091 
01093 // FBArrowButton
01095 __FB_FORWARD( FBArrowButton );
01096 
01103 class FBSDK_DLL FBArrowButton : public FBVisualComponent {
01104     __FBClassDeclare( FBArrowButton, FBVisualComponent );
01105 public:
01107     FBArrowButton();
01108 
01116     void SetContent( const char* pTitle, HFBVisualComponent pContent, int pContentWidth, int pContentHeight );
01117 };
01118 
01120 // FBScrollBox
01122 __FB_FORWARD( FBScrollBox);
01123 
01130 class FBSDK_DLL FBScrollBox : public FBVisualComponent {
01131     __FBClassDeclare( FBScrollBox, FBVisualComponent );
01132 public:
01134     FBScrollBox();
01135 
01139     void SetContentWidth( int pContentWidth );
01140 
01144     void SetContentHeight(int pContentHeight );
01145 
01150     HFBLayout GetContent();
01151 private:
01152     FBLayout mLayout;
01153 };
01154 
01155 
01157 // FBLabel
01159 __FB_FORWARD( FBLabel );
01160 
01162 class FBSDK_DLL FBLabel : public FBVisualComponent {
01163     __FBClassDeclare( FBLabel,FBVisualComponent );
01164 public:
01166     FBLabel();
01167 
01172     void SetTextColor(const FBColorAndAlpha& pColorRGBA);
01173 
01178     void SetBackgroundDrawing(bool pDrawBackGround);
01179     
01180     FBPropertyTextJustify   Justify;        
01181     FBPropertyTextStyle     Style;          
01182     FBPropertyBool          WordWrap;       
01183 };
01184 
01186 // FBImageContainer
01188 __FB_FORWARD( FBImageContainer );
01189 
01191 class FBSDK_DLL FBImageContainer : public FBVisualComponent {
01192     __FBClassDeclare( FBImageContainer,FBVisualComponent );
01193 public:
01195     FBImageContainer();
01196 
01197     FBPropertyString        Filename;       
01198     FBPropertyInt           ImageWidth;         
01199     FBPropertyInt           ImageHeight;            
01200 
01201     FBPropertyEvent         OnDragAndDrop;  
01202 };
01203 
01205 // FBEdit
01207 __FB_FORWARD( FBEdit );
01208 
01210 class FBSDK_DLL FBEdit : public FBVisualComponent {
01211     __FBClassDeclare( FBEdit,FBVisualComponent );
01212 public:
01214     FBEdit(HIObject pObject=NULL);
01215 
01216     FBPropertyString        Text;           
01217     FBPropertyBool          PasswordMode;   
01218 
01219     FBPropertyEvent         OnChange;       
01220     FBPropertyEvent         OnTransaction;  
01221 };
01222 
01224 // FBEditNumber
01226 __FB_FORWARD( FBEditNumber );
01227 
01229 class FBSDK_DLL FBEditNumber : public FBVisualComponent {
01230     __FBClassDeclare( FBEditNumber,FBVisualComponent );
01231 public:
01233     FBEditNumber();
01234 
01235     FBPropertyDouble        Value;          
01236     FBPropertyDouble        Min;            
01237     FBPropertyDouble        Max;            
01238     FBPropertyDouble        Precision;      
01239     FBPropertyDouble        LargeStep;      
01240     FBPropertyDouble        SmallStep;      
01241 
01242     FBPropertyEvent         OnChange;       
01243 };
01244 
01246 // FBEditColor
01248 __FB_FORWARD( FBEditColor );
01249 
01251 class FBSDK_DLL FBEditColor : public FBVisualComponent {
01252     __FBClassDeclare( FBEditColor,FBVisualComponent );
01253 public:
01255     FBEditColor();
01256 
01257     FBPropertyColor         Value;          
01258     FBPropertyInt           ColorMode;      
01259 
01260     FBPropertyEvent         OnChange;       
01261 };
01262 
01264 // FBEditVector
01266 __FB_FORWARD( FBEditVector );
01267 
01269 class FBSDK_DLL FBEditVector : public FBVisualComponent {
01270     __FBClassDeclare( FBEditVector,FBVisualComponent );
01271 public:
01273     FBEditVector();
01274 
01275     FBPropertyVector3d      Value;          
01276 
01277     FBPropertyEvent         OnChange;       
01278 };
01279 
01280 __FB_FORWARD( FBEventDblClick );
01281 
01283 class FBSDK_DLL FBEventDblClick : public FBEvent
01284 {
01285 public:
01289     FBEventDblClick( HKEventBase pEvent );      
01290 
01291     FBPropertyInt       Selection;  
01292 };
01293 
01295 // FBList
01297 __FB_FORWARD( FBList );
01298 
01300 enum FBListStyle { 
01301     kFBDropDownList,    
01302     kFBVerticalList     
01303 };
01304 
01305 FB_DEFINE_ENUM( FBSDK_DLL, ListStyle ); // FBPropertyListStyle
01306 
01308 class FBSDK_DLL FBList : public FBVisualComponent {
01309     __FBClassDeclare( FBList,FBVisualComponent );
01310 public:
01312     FBList();
01313 
01314     FBPropertyStringList    Items;          
01315 
01316     FBPropertyInt           ItemIndex;      
01317     FBPropertyBool          MultiSelect;    
01318     FBPropertyBool          ExtendedSelect; 
01319     FBPropertyListStyle     Style;          
01320 
01321     FBPropertyEvent         OnChange;       
01322     FBPropertyEvent         OnDragAndDrop;  
01323 
01328     virtual bool IsSelected( int pIndex );
01329 
01334     virtual void Selected( int pIndex, bool pSelected );
01335 };
01336 
01338 // FBSlider
01340 __FB_FORWARD( FBSlider );
01341 
01343 class FBSDK_DLL FBSlider : public FBVisualComponent {
01344     __FBClassDeclare( FBSlider,FBVisualComponent );
01345 public:
01347     FBSlider();
01348 
01349     FBPropertyDouble        Min;                
01350     FBPropertyDouble        Max;                
01351     FBPropertyDouble        Value;              
01352     FBPropertyOrientation   Orientation;        
01353     FBPropertyDouble        LargeStep;          
01354     FBPropertyDouble        SmallStep;          
01355 
01356     FBPropertyEvent         OnChange;           
01357     FBPropertyEvent         OnTransaction;      
01358 };
01359 
01361 // FBLayoutRegion
01363 __FB_FORWARD( FBLayoutRegion );
01364 
01366 class FBSDK_DLL FBLayoutRegion : public FBVisualComponent {
01367     __FBClassDeclare( FBLayoutRegion,FBVisualComponent );
01368 public:
01370     FBLayoutRegion();
01371 };
01372 
01374 // FBThermometer
01376 __FB_FORWARD( FBThermometer );
01377 
01379 class FBSDK_DLL FBThermometer : public FBVisualComponent {
01380     __FBClassDeclare( FBThermometer,FBVisualComponent );
01381 public:
01383     FBThermometer();
01384 
01385     FBPropertyFloat     Min;            
01386     FBPropertyFloat     Max;            
01387     FBPropertyFloat     Value;          
01388 
01392     void Clear();
01393 };
01394 
01396 // FBSpread
01398 __FB_FORWARD( FBSpread );
01399 
01401 enum FBCellStyle  { 
01402     kFBCellStyleDefault,        
01403     kFBCellStyleString,         
01404     kFBCellStyleDouble,         
01405     kFBCellStyleInteger,        
01406     kFBCellStyleButton,         
01407     kFBCellStyle2StatesButton,  
01408     kFBCellStyle3StatesButton,  
01409     kFBCellStyleMenu,           
01410     kFBCellStyleVoid,           
01411     kFBCellStyleView,           
01412     kFBCellStyleTime            
01413 };
01414 
01415 FB_DEFINE_ENUM( FBSDK_DLL, CellStyle ); // FBPropertyCellStyle
01416 
01417 __FB_FORWARD( FBSpreadPart );
01418 
01422 class FBSDK_DLL FBSpreadPart : public FBComponent {
01423     __FBClassDeclare( FBSpreadPart,FBComponent );
01424 protected:
01429     FBSpreadPart( HFBSpread pParent );
01430 
01431 public:
01432     FBPropertyInt           Row;            
01433     FBPropertyInt           Column;         
01434     FBPropertyBool          ReadOnly;       
01435     FBPropertyBool          Enabled;        
01436     FBPropertyCellStyle     Style;          
01437     FBPropertyTextJustify   Justify;        
01438 
01442     FBSpread* GetSpread();
01443 };
01444 
01445 __FB_FORWARD( FBSpreadCell );
01446 
01448 class FBSDK_DLL FBSpreadCell : public FBSpreadPart {
01449     __FBClassDeclare( FBSpreadCell, FBSpreadPart );
01450 public:
01451 
01457     FBSpreadCell( HFBSpread pParent, kReference pRow, int pCol );
01458 };
01459 
01460 __FB_FORWARD( FBSpreadRow );
01461 
01463 class FBSDK_DLL FBSpreadRow : public FBSpreadPart {
01464     __FBClassDeclare( FBSpreadRow,FBSpreadPart );
01465 public:
01470     FBSpreadRow( HFBSpread pParent, kReference pRow );
01471 
01473     virtual void Remove();
01474 
01479     virtual bool EditCaption();
01480 
01481     FBPropertyString        Caption;        
01482     FBPropertykReference    Parent;         
01483     FBPropertyBool          RowSelected;    
01484 };
01485 
01486 __FB_FORWARD( FBSpreadColumn );
01487 
01489 class FBSDK_DLL FBSpreadColumn : public FBSpreadPart {
01490     __FBClassDeclare( FBSpreadColumn,FBSpreadPart );
01491 public:
01496     FBSpreadColumn( HFBSpread pParent, int pCol );
01497 
01498     FBPropertyString        Caption;        
01499     FBPropertyInt           Width;          
01500     FBPropertyTextJustify   Justify;        
01501 };
01502 
01504 class FBSDK_DLL FBSpread : public FBVisualComponent {
01505     __FBClassDeclare( FBSpread,FBVisualComponent );
01506 public:
01509     FBSpread();
01510 
01511     FBPropertyString        Caption;        
01512     FBPropertykReference    Row;            
01513     FBPropertyInt           Column;         
01514     FBPropertyBool          MultiSelect;    
01515 
01516     FBPropertyEvent         OnCellChange;   
01517     FBPropertyEvent         OnRowClick;     
01518     FBPropertyEvent         OnColumnClick;  
01519     FBPropertyEvent         OnDragAndDrop;  
01520 
01525     virtual void RowAdd( const char * pString, kReference pRef=0 );
01526 
01530     virtual void RowSort( bool pAscending=true );
01531 
01536     virtual void ColumnAdd( const char * pString, kReference pRef=0 );
01537 
01541     virtual FBSpreadCell GetCurrentCell();
01542     
01548     virtual FBSpreadCell GetCell( kReference pRef,int pColumn );
01549 
01554     virtual FBSpreadColumn GetColumn( int pColumn );
01555 
01560     virtual FBSpreadRow GetRow( kReference pRef );
01561     
01567     virtual void SetCell( kReference pRef,int pColumn, const char*        pString );
01568 
01570 
01575     virtual void SetCell( kReference pRef,int pColumn, int          pValue );
01576     virtual void SetCell( kReference pRef,int pColumn, kLongLong    pValue );
01577     virtual void SetCell( kReference pRef,int pColumn, double       pValue );
01579 
01585     virtual void GetCell( kReference pRef,int pColumn, const char* &pString );
01586 
01588 
01593     virtual void GetCell( kReference pRef,int pColumn, int          &pValue );
01594     virtual void GetCell( kReference pRef,int pColumn, kLongLong    &pValue );
01595     virtual void GetCell( kReference pRef,int pColumn, double       &pValue );
01597 
01603     virtual void SetCellView( kReference pRef,int pColumn, HIKtView pView );
01604 
01610     virtual void GetCellView( kReference pRef,int pColumn, HIKtView &pView );
01611 
01615     virtual void Clear();
01616 };
01617 
01618 __FB_FORWARD( FBEventSpread );
01619 
01621 class FBSDK_DLL FBEventSpread : public FBEvent 
01622 {
01623 public:
01627     FBEventSpread( HKEventBase pEvent );
01628 
01629     FBPropertyInt Row;              
01630     FBPropertyInt Column;           
01631 
01635     FBPropertyInt Action;
01636 };
01637 
01639 // FBVisualContainer
01641 __FB_FORWARD( FBVisualContainer );
01642 
01644 enum FBIconPosition {   
01645     kFBIconLeft,        
01646     kFBIconTop,         
01647 };
01648 
01649 FB_DEFINE_ENUM( FBSDK_DLL, IconPosition ); // FBPropertyIconPosition
01650 
01652 class FBSDK_DLL FBVisualContainer : public FBVisualComponent {
01653     __FBClassDeclare( FBVisualContainer,FBVisualComponent );
01654 public:
01657     FBVisualContainer();
01658 
01665     virtual bool ItemIconSet( kReference pRef, HFBImageContainer pImage, bool pUseACopyOfTheImage=true );
01666 
01672     virtual bool ItemIconSet( kReference pRef, const char *pFilename );
01673 
01678     virtual bool ItemNameEdit( kReference pRef );
01679 
01683     virtual int GetSelection();
01684 
01685     FBPropertyStringList    Items;                  
01686 
01687     FBPropertyInt           ItemIndex;              
01688     FBPropertyOrientation   Orientation;            
01689     FBPropertyBool          ItemWrap;               
01690     FBPropertyIconPosition  IconPosition;           
01691     FBPropertyInt           ItemWidth;              
01692     FBPropertyInt           ItemHeight;             
01693                                                     
01694     FBPropertyEvent         OnChange;               
01695     FBPropertyEvent         OnDblClick;             
01696     FBPropertyEvent         OnDragAndDrop;          
01697 };
01698 
01700 // FBEditTimeCode
01702 __FB_FORWARD( FBEditTimeCode );
01703 
01704 class FBSDK_DLL FBEditTimeCode : public FBVisualComponent {
01705     __FBClassDeclare( FBEditTimeCode,FBVisualComponent );
01706 public:
01709     FBEditTimeCode();
01710 
01711     FBPropertyTime          Value;          
01712 
01713     FBPropertyEvent         OnChange;       
01714 };
01715 
01717 // FBTree
01719 __FB_FORWARD( FBTreeNode        );
01720 __FB_FORWARD( FBTree            );
01721 
01723 // FBEventTreeClick
01725 __FB_FORWARD( FBEventTree );
01726 
01728 enum FBEventTreeWhy
01729 {
01730     kFBEventTreeExpand,
01731     kFBEventTreeCollapse,
01732     kFBEventTreeHideNode,
01733     kFBEventTreeUnhideNode
01734 };
01735 
01736 FB_DEFINE_ENUM( FBSDK_DLL, EventTreeWhy ); // FBPropertyEventTreeWhy
01737 
01739 class FBSDK_DLL FBEventTree : public FBEvent 
01740 {
01741 public:
01745     FBEventTree( HKEventBase pEvent );
01746 
01747     FBPropertyEventTreeWhy  Why;        
01748     FBPropertyTreeNode      TreeNode;   
01749 };
01750 
01751 __FB_FORWARD( FBEventTreeSelect );
01752 
01754 class FBSDK_DLL FBEventTreeSelect : public FBEvent 
01755 {
01756 public:
01760     FBEventTreeSelect( HKEventBase pEvent );
01761     FBPropertyTreeNode TreeNode;            
01762 };
01763 
01765 class FBSDK_DLL FBTreeNode : public FBComponent 
01766 {
01767     __FBClassDeclare( FBTreeNode,FBComponent );
01768 public:
01773     FBTreeNode(HFBTree pTree, HIObject pObject);
01774 
01775     FBPropertykReference    Reference;      
01776     FBPropertyBool          Checked;        
01777 };
01778 
01780 class FBSDK_DLL FBPropertyListTreeNode: public FBPropertyBaseList< FBTreeNode* >
01781 {
01782 private:
01783     FBArrayTemplate< FBTreeNode* > mItems;
01784 
01785 public:
01786     FBPropertyListTreeNode();
01787 
01788     virtual ~FBPropertyListTreeNode();
01789 
01790     virtual void Refresh ();
01791 
01796     virtual int Add( FBTreeNode* pNode );
01797 
01801     virtual void RemoveAt( int pIndex );
01802 
01807     virtual FBTreeNode* operator[]( int pIndex );
01808 
01812     virtual int GetCount ();
01813 };
01814 
01816 class FBSDK_DLL FBTree : public FBVisualComponent 
01817 {
01818     __FBClassDeclare( FBTree,FBVisualComponent );
01819 public:
01821     FBTree();
01822 
01826     FBTreeNode* GetRoot();
01827 
01830     void Clear();
01831 
01837     FBTreeNode* InsertLast( FBTreeNode* pNode, const char* pName );
01838 
01839     FBPropertyEvent     OnSelect;           
01840 
01841     FBPropertyEvent     OnClick;            
01842     FBPropertyEvent     OnClickCheck;       
01843     FBPropertyEvent     OnDblClick;         
01844     FBPropertyEvent     OnDeselect;         
01845     FBPropertyEvent     OnExpanded;         
01846     FBPropertyEvent     OnExpanding;        
01847     FBPropertyEvent     OnCollapsed;        
01848     FBPropertyEvent     OnCollapsing;       
01849     FBPropertyEvent     OnChange;           
01850     FBPropertyEvent     OnDragAndDrop;      
01851     FBPropertyEvent     OnEditNode;         
01852 
01853     FBPropertyInt           SelectedCount;      
01854     FBPropertyInt           VisibleItemCount;   
01855     FBPropertyBool          AllowExpansion;     
01856     FBPropertyBool          AllowCollapse;      
01857     FBPropertyBool          MultiDrag;          
01858     FBPropertyBool          AutoScroll;         
01859     FBPropertyInt           Indent;             
01860     FBPropertyBool          CheckBoxes;         
01861     FBPropertyBool          ShowLines;          
01862     FBPropertyInt           ItemHeight;         
01863     FBPropertyBool          MultiSelect;        
01864     FBPropertyBool          EditNodeOn2Select;  
01865     FBPropertyInt           TreeHeight;         
01866     FBPropertyInt           TreeWidth;          
01867     FBPropertyBool          SelectionActive;    
01868     FBPropertyBool          DeselectOnCollapse; 
01869     FBPropertyBool          NoSelectOnDrag;     
01870     FBPropertyBool          NoSelectOnRightClick;  
01871     FBPropertyBool          HighlightOnRightClick; 
01872     FBPropertyBool          AutoScrollOnExpand;    
01873     FBPropertyBool          AutoExpandOnDragOver;  
01874     FBPropertyBool          AutoExpandOnDblClick;  
01875     FBPropertyListTreeNode  SelectedNodes;         
01876 };
01877 
01879 // FBView
01881 __FB_FORWARD( FBView );
01882 
01884 class FBSDK_DLL FBView : public FBVisualComponent {
01885     __FBClassDeclare( FBView,FBVisualComponent );
01886 public:
01889     FBView();
01890 
01891     IObject_Declare(Implementation);    // Interface to IObject
01892 
01896     virtual void Refresh(bool pNow=false);
01897 
01901     virtual bool IsView();
01902 
01909     virtual void DrawString(const char *pText,float pX,float pY, int pEnable=-1);
01910 
01918     virtual bool SetViewport(int pX,int pY,int pW,int pH);
01919 
01920     FBPropertyBool      GraphicOGL;     
01921     FBPropertyBool      DoubleBuffer;   
01922 };
01923 
01925 // FBProgress
01927 __FB_FORWARD( FBProgress );
01928 
01930 class FBSDK_DLL FBProgress : public FBVisualComponent {
01931     __FBClassDeclare( FBProgress,FBVisualComponent );
01932 public:
01935     FBProgress();
01936 
01939     void ProgressBegin();
01942     void ProgressDone();
01943 
01947     bool UserRequestCancell();
01948 
01949     FBPropertyString    Caption;    
01950     FBPropertyString    Text;       
01951     FBPropertyInt       Percent;    
01952 };
01953 
01955 // FBPopup
01957 __FB_FORWARD( FBPopup );
01958 
01962 class FBSDK_DLL FBPopup : public FBLayout {
01963     __FBClassDeclare( FBPopup,FBLayout );
01964 public:
01967     FBPopup();
01968 
01973     virtual bool Show( HFBVisualComponent pParent=NULL );
01974 
01978     virtual void Close(bool pOk=false);
01979 
01980     FBPropertyString        Caption;    
01981     FBPropertyBool          Modal;      
01982 };
01983 
01985 // FBFilePopup
01987 __FB_FORWARD( FBFilePopup );
01988 
01990 enum FBFilePopupStyle { 
01991     kFBFilePopupOpen,       
01992     kFBFilePopupSave        
01993 };
01994 
01995 FB_DEFINE_ENUM( FBSDK_DLL, FilePopupStyle ); // FBPropertyFilePopupStyle
01996 
01998 class FBSDK_DLL FBFilePopup : public FBVisualComponent {
01999     __FBClassDeclare( FBFilePopup,FBVisualComponent );
02000 public:
02003     FBFilePopup();
02004 
02008     virtual bool Execute();
02009 
02010     FBPropertyString            Caption;        
02011     FBPropertyString            FileName;       
02012     FBPropertyString            Path;           
02013     FBPropertyString            FullFilename;   
02014     FBPropertyString            Filter;         
02015     FBPropertyFilePopupStyle    Style;          
02016 };
02017 
02019 // FBFolderPopup
02021 __FB_FORWARD( FBFolderPopup );
02022 
02024 class FBSDK_DLL FBFolderPopup : public FBVisualComponent {
02025     __FBClassDeclare( FBFolderPopup,FBVisualComponent );
02026 public:
02029     FBFolderPopup();
02030 
02034     virtual bool Execute();
02035 
02036     FBPropertyString            Caption;        
02037     FBPropertyString            Path;           
02038 };
02039 
02052 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);
02053 
02068 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);
02069 
02071 enum FBPopupInputType{
02072     kFBPopupBool,       
02073     kFBPopupChar,       
02074     kFBPopupString,     
02075     kFBPopupInt,        
02076     kFBPopupFloat,      
02077     kFBPopupDouble,     
02078     kFBPopupPassword    
02079 };
02080 
02096 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 );
02097 
02099 // FBMemo
02101 __FB_FORWARD( FBMemo );
02102 
02104 class FBSDK_DLL FBMemo : public FBEdit {
02105     __FBClassDeclare( FBMemo,FBEdit );
02106 public:
02108     FBMemo();
02109 
02113     void SetStrings(HFBStringList pLines);
02114 
02118     void GetStrings(HFBStringList pLines);
02119 };
02120 
02121 
02123 // FBFCurveEditor
02125 __FB_FORWARD( FBFCurveEditor );
02126 
02128 class FBSDK_DLL FBFCurveEditor : public FBVisualComponent {
02129     __FBClassDeclare( FBFCurveEditor,FBVisualComponent );
02130 public:
02132     FBFCurveEditor();
02133 
02137     void AddAnimationNode(FBAnimationNode* pNode);
02141     void RemoveAnimationNode(FBAnimationNode* pNode);
02142 
02146     void AddProperty(FBPropertyAnimatable* pProperty);
02150     void RemoveProperty(FBPropertyAnimatable* pProperty);
02151 
02154     void Clear();
02155 };
02156 
02158 // FBPropertyConnectionEditor
02160 __FB_FORWARD( FBPropertyConnectionEditor );
02161 
02163 class FBSDK_DLL FBPropertyConnectionEditor : public FBVisualComponent {
02164     __FBClassDeclare( FBPropertyConnectionEditor,FBVisualComponent );
02165 public:
02167     FBPropertyConnectionEditor();
02168 
02171     void PopupTree();
02172 
02175     void PopupList();
02176 
02177     FBPropertyReference Property;   
02178 };
02179 
02181 // FBEditProperty
02183 __FB_FORWARD( FBEditProperty );
02184 
02227 class FBSDK_DLL FBEditProperty : public FBVisualComponent {
02228     __FBClassDeclare( FBEditProperty, FBVisualComponent );
02229 public:
02231     FBEditProperty();
02232 
02233     FBPropertyReference Property;   
02234 
02235     FBPropertyDouble    SliderMin;  
02236     FBPropertyDouble    SliderMax;  
02237     FBPropertyDouble    SmallInc;   
02238     FBPropertyDouble    LargeInc;   
02239     FBPropertyDouble    Precision;  
02240     FBPropertyInt       CaptionSize;
02241 };
02242 
02243 
02245 // FBEditPropertyModern
02247 __FB_FORWARD( FBEditPropertyModern );
02248 
02255 class FBSDK_DLL FBEditPropertyModern : public FBVisualComponent {
02256     __FBClassDeclare( FBEditPropertyModern, FBVisualComponent );
02257 public:
02259     FBEditPropertyModern();
02260 
02265     void SetBackgroundColorIndex( FBColorIndex pIndex );
02266 
02267     FBPropertyReference Property;   
02268 
02269     FBPropertyDouble    SliderMin;  
02270     FBPropertyDouble    SliderMax;  
02271     FBPropertyDouble    SmallInc;   
02272     FBPropertyDouble    LargeInc;   
02273     FBPropertyDouble    Precision;  
02274 };
02275 
02277 // FBBrowsingProperty
02279 __FB_FORWARD( FBBrowsingProperty );
02280 
02282 class FBSDK_DLL FBBrowsingProperty : public FBVisualComponent {
02283     __FBClassDeclare( FBBrowsingProperty,FBVisualComponent );
02284 public:
02287     FBBrowsingProperty();
02288 
02292     void AddObject(FBPlug* pObject);
02293 
02297     void RemoveObject(FBPlug* pObject);
02298 
02302     int ObjectGetCount();
02303 
02308     FBPlug* ObjectGet(int pIndex);
02309 
02316     int AddButtonInToolbar(const char* pCaption, HICallback pOwner, kICallbackHandler pHandler);
02317 
02318 };
02319 
02321 // FBWidgetHolder
02323 __FB_FORWARD( FBWidgetHolder );
02324 
02326 class FBSDK_DLL FBWidgetHolder : public FBVisualComponent {
02327     __FBClassDeclare( FBWidgetHolder, FBVisualComponent );
02328 public:
02329 
02331     typedef void* (*WidgetCreator)(void* pParent);
02332 
02335     FBWidgetHolder();
02336 
02344     void SetCreator(WidgetCreator pCreatorFunction );
02345 };
02346 
02348 // FBPlotPopup
02350 FB_FORWARD( FBPlotOptions );
02351 __FB_FORWARD( FBPlotPopup );
02352 
02354 class FBSDK_DLL FBPlotPopup : public FBVisualComponent {
02355     __FBClassDeclare( FBPlotPopup,FBVisualComponent );
02356 public:
02359     FBPlotPopup();
02360 
02364     virtual bool Popup(const char* pWindowName);
02365 
02369     FBPlotOptions   GetPlotOptions();
02370 
02371     FBPropertyBool          EnablePlotTranslationOnRootOnly;    
02372     FBPropertyBool          EnableSmartPlotControls;            
02373     FBPropertyBool          EnablePlotCharacterExtension;       
02374 };
02375 
02376 #endif //}
02377 
02378 
02379 #ifdef FBSDKUseNamespace
02380     }
02381 #endif
02382 
02383 #endif