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*/,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 
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     //-- Properties
00531     FBPropertyDragAndDropState  State;      
00532     FBPropertyInt               PosX;       
00533     FBPropertyInt               PosY;       
00534     FBPropertykReference        Data[2];    
00535 };
00536 
00538 // FBEventShow
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 // FBEventActivate
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 // FBEventExpose
00574 __FB_FORWARD( FBEventExpose );
00575 
00577 class FBSDK_DLL FBEventExpose : public FBEvent 
00578 {
00579 public:
00583     FBEventExpose( HKEventBase pEvent );
00584 
00585     //FBGeometry* Data;             //!< <b>Read Write Property:</b> Generic data of event.
00586 };
00587 
00589 // FBEventResize
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 // FBEventMenu
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 /*pOwner*/,char * /*pName*/,void * /*pData*/) \
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 // FBLayout
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);        // Interface to IObject.
00958 
00959     //--- Events
00960     FBPropertyEvent     OnInput;        
00961     FBPropertyEvent     OnPaint;        
00962     FBPropertyEvent     OnIdle;         
00963     FBPropertyEvent     OnShow;         
00964     FBPropertyEvent     OnResize;       
00965 };
00966 
00968 // FBTabPanel
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 // FBButton
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 // FBArrowButton
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 // FBScrollBox
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 // FBLabel
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 // FBImageContainer
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 // FBEdit
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 // FBEditNumber
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 // FBEditColor
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 // FBEditVector
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 // FBList
01294 __FB_FORWARD( FBList );
01295 
01297 enum FBListStyle { 
01298     kFBDropDownList,    
01299     kFBVerticalList     
01300 };
01301 
01302 FB_DEFINE_ENUM( FBSDK_DLL, ListStyle ); // FBPropertyListStyle
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 // FBSlider
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 // FBLayoutRegion
01360 __FB_FORWARD( FBLayoutRegion );
01361 
01363 class FBSDK_DLL FBLayoutRegion : public FBVisualComponent {
01364     __FBClassDeclare( FBLayoutRegion,FBVisualComponent );
01365 public:
01367     FBLayoutRegion();
01368 };
01369 
01371 // FBThermometer
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 // FBSpread
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 ); // FBPropertyCellStyle
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 // FBContainer
01638 __FB_FORWARD( FBContainer );
01639 
01641 enum FBIconPosition {   
01642     kFBIconLeft,        
01643     kFBIconTop,         
01644 };
01645 
01646 FB_DEFINE_ENUM( FBSDK_DLL, IconPosition ); // FBPropertyIconPosition
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 // FBEditTimeCode
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 // FBTree
01716 __FB_FORWARD( FBTreeNode        );
01717 __FB_FORWARD( FBTree            );
01718 
01720 // FBEventTreeClick
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 ); // FBPropertyEventTreeWhy
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 // FBView
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);    // Interface to IObject
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 // FBProgress
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 // FBPopup
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 // FBFilePopup
01947 __FB_FORWARD( FBFilePopup );
01948 
01950 enum FBFilePopupStyle { 
01951     kFBFilePopupOpen,       
01952     kFBFilePopupSave        
01953 };
01954 
01955 FB_DEFINE_ENUM( FBSDK_DLL, FilePopupStyle ); // FBPropertyFilePopupStyle
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 // FBFolderPopup
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 // FBMemo
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 // FBFCurveEditor
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 // FBPropertyConnectionEditor
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 // FBEditProperty
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 // FBEditPropertyModern
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 // FBBrowsingProperty
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 // FBWidgetHolder
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 // FBPlotPopup
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