53#ifndef HEADER_INCLUDED__SAGA_API__tool_H 
   54#define HEADER_INCLUDED__SAGA_API__tool_H 
  153        const CSG_String &                    Get_File_Name                           (
void)  
const;  
 
  157        const CSG_String &                    Get_Description                         (
void)  
const;
 
  163        virtual CSG_String                    Get_MenuPath                            (
bool bSolved);
 
  177        bool                                            Set_Parameter                           (
const wchar_t    *ID, 
CSG_Parameter   *pValue);
 
  197        bool                                            Reset                                           (
bool bManager = 
true);
 
  198        bool                                            Reset_Manager                           (
void);
 
  199        bool                                            Reset_Grid_System                       (
void);
 
  201        bool                                            Update_Parameter_States         (
void);
 
  203        void                                            Set_Callback                            (
bool bActive = 
true);
 
  208        bool                                            Delete_Manager                          (
bool bDetachData = 
false, 
bool bReset = 
true);
 
  214        bool                                            Settings_Pop                            (
void);
 
  218        virtual bool                            needs_GUI                                      (
void)
  const   {       
return( 
false );        }
 
  219        bool                                            has_GUI                                         (
void)  
const;
 
  220        bool                                            has_CMD                                         (
void)  
const;
 
  222        virtual bool                            is_Grid                                          (
void)
  const   {       
return( 
false );        }
 
  227        void                                            Set_Show_Progress                       (
bool bOn = 
true);
 
  232        bool                                            Execute                                         (
bool bAddHistory = 
false);
 
  251        CSG_String                                    Get_Script                                      (Script_Format Format, 
bool bHeader = 
true, 
int Arguments = 0, 
bool bWrapArgs = 
true);
 
  280        bool                                            Dlg_Parameters                          (
const CSG_String &Identifier); 
 
  286        virtual bool                            Set_Progress                            (
int    Position, 
int    Range     )    
const;
 
  287        virtual bool                            Set_Progress                            (
sLong  Position, 
sLong  Range     )  
const;
 
  288        virtual bool                            Set_Progress                            (
double Position, 
double Range = 1.)    
const;
 
  290        bool                                            Stop_Execution                          (
bool bDialog = 
true);
 
  293        bool                                            Message_Dlg_Confirm                     (
const CSG_String &Text, 
const SG_Char *Caption = NULL);
 
  295        void                                            Message_Add                                     (
const CSG_String &Text, 
bool bNewLine = 
true);
 
  296        void                                            Message_Fmt                                     (
const char    *Format, ...);
 
  297        void                                            Message_Fmt                                     (
const wchar_t *Format, ...);
 
  301        bool                                            Error_Fmt                                       (
const char    *Format, ...);
 
  302        bool                                            Error_Fmt                                       (
const wchar_t *Format, ...);
 
  305        bool                                            DataObject_Add                          (
CSG_Data_Object *pDataObject, 
bool bUpdate = 
false);
 
  307        bool                                            DataObject_Update_All           (
void);
 
  316        static int                                      _On_Parameter_Changed                           (
CSG_Parameter *pParameter, 
int Flags);
 
  318        static bool                                     Process_Get_Okay                                        (
bool bBlink = 
false);
 
  319        static void                                     Process_Set_Text                                        (
const CSG_String &Text);
 
  320        static void                                     Process_Set_Text                                        (
const char    *Format, ...);
 
  321        static void                                     Process_Set_Text                                        (
const wchar_t *Format, ...);
 
  329        static bool                                     DataObject_Set_Colors                           (
CSG_Data_Object *pDataObject, 
const CSG_String &Colors, 
int nColors = 0, 
bool bRevert = 
false);
 
  344        static bool                                     DataObject_Set_Stretch_Linear           (
CSG_Data_Object *pDataObject, 
int Field = -1, 
double Minimum = 5., 
double Maximum = 95.    , 
int Interval_Mode = 0, 
double Interval_Log = 1., 
int Colors = -1, 
bool bUpdateNow = 
false);
 
  345        static bool                                     DataObject_Set_Stretch_StdDev           (
CSG_Data_Object *pDataObject, 
int Field = -1, 
double StdDev = 2., 
bool bKeepInRange = 
false, 
int Interval_Mode = 0, 
double Interval_Log = 1., 
int Colors = -1, 
bool bUpdateNow = 
false);
 
  346        static bool                                     DataObject_Set_Stretch_Percentile       (
CSG_Data_Object *pDataObject, 
int Field = -1, 
double Minimum = 2., 
double Maximum = 98.    , 
int Interval_Mode = 0, 
double Interval_Log = 1., 
int Colors = -1, 
bool bUpdateNow = 
false);
 
  347        static bool                                     DataObject_Set_Stretch                          (
CSG_Data_Object *pDataObject, 
int Field     , 
double Minimum     , 
double Maximum          , 
int Interval_Mode = 0, 
double Interval_Log = 1., 
int Colors = -1, 
bool bUpdateNow = 
false);
 
  349        static bool                                     DataObject_Classify_Unique                      (
CSG_Data_Object *pDataObject, 
int Field = -1, 
int Classes_Max = 1024                                   , 
int Colors = -1);
 
  350        static bool                                     DataObject_Classify_Equal                       (
CSG_Data_Object *pDataObject, 
int Field = -1, 
int Classes = 10                                         , 
int Colors = -1);
 
  351        static bool                                     DataObject_Classify_Defined                     (
CSG_Data_Object *pDataObject, 
int Field     , 
double Interval, 
bool bOffset = 
false, 
double Offset = 0., 
int Colors = -1);
 
  352        static bool                                     DataObject_Classify_Quantile            (
CSG_Data_Object *pDataObject, 
int Field = -1, 
int Classes = 10, 
bool bHistogram = 
true                 , 
int Colors = -1);
 
  353        static bool                                     DataObject_Classify_Geometric           (
CSG_Data_Object *pDataObject, 
int Field = -1, 
int Classes = 10, 
bool bIncreasing = 
true                , 
int Colors = -1);
 
  354        static bool                                     DataObject_Classify_Natural                     (
CSG_Data_Object *pDataObject, 
int Field = -1, 
int Classes = 10                                         , 
int Colors = -1);
 
  355        static bool                                     DataObject_Classify_StdDev                      (
CSG_Data_Object *pDataObject, 
int Field = -1, 
double StdDev = 0.5, 
double StdDev_Max = 4.5             , 
int Colors = -1);
 
  360        bool                                            m_bExecutes, m_bError_Ignore, m_bShow_Progress, m_bGUI, m_bCMD;
 
  364        CSG_String                                    m_ID, m_Library, m_Library_Menu, m_File_Name, m_Author, m_Version, m_Execution_Info;
 
  367        bool                                            _Synchronize_DataObjects        (
void);
 
  369        CSG_String                                    _Get_Script_CMD                         (
bool bHeader                                   , 
bool bAllArguments, 
bool bWrapArgs, 
bool bBatch);
 
  370        void                                            _Get_Script_CMD                         (
CSG_String &Script, 
CSG_Parameters *pParameters, 
bool bAllArguments, 
bool bWrapArgs, 
bool bBatch);
 
  373        void                                            _Get_Script_CMD_Usage           (
CSG_Parameters *pParameters, 
class wxCmdLineParser &Parser);
 
  375        CSG_String                                    _Get_Script_Python                      (
bool bHeader, 
bool bAllArguments);
 
  378        CSG_String                                    _Get_Script_Python_Wrap         (
bool bHeader, 
bool bName, 
bool bCall, 
int AllArguments, 
bool bWrapArgs);
 
  381        CSG_String                                    _Get_Script_Markdown            (
bool bHeader, 
int iArguments);
 
  384        void                                            _Set_Output_History                     (
void);
 
 
  413        virtual bool                            is_Grid                                  (
void)
  const   {       
return( 
true ); }
 
  418        virtual bool                            Set_Progress_Cells              (
sLong Cell)                                       
const;
 
  419        virtual bool                            Set_Progress_Rows               (
int    Row)                                    
const;
 
  443        void                                            Lock_Create                             (
void);
 
  444        void                                            Lock_Destroy                    (
void);
 
  447        char                                            Lock_Get                                (
int x, 
int y)  {       
return( m_pLock && x >= 0 && x < 
Get_NX() && y >= 0 && y < 
Get_NY() ? m_pLock->asChar(x, y) : 0 );  }
 
  451                if( m_pLock && x >= 0 && x < 
Get_NX() && y >= 0 && y < 
Get_NY() )
 
  453                        m_pLock->Set_Value(x, y, Value);
 
 
 
  502#define TOOL_INTERACTIVE_KEY_LEFT       0x01 
  503#define TOOL_INTERACTIVE_KEY_MIDDLE     0x02 
  504#define TOOL_INTERACTIVE_KEY_RIGHT      0x04 
  505#define TOOL_INTERACTIVE_KEY_SHIFT      0x08 
  506#define TOOL_INTERACTIVE_KEY_ALT        0x10 
  507#define TOOL_INTERACTIVE_KEY_CTRL       0x20 
  537        virtual bool                            On_Execute_Keyboard             (
int Character);
 
  538        virtual bool                            On_Execute_Finish               (
void);
 
  552        void                                            Set_Drag_Mode                   (
int Drag_Mode);
 
  557        int                                                     m_Keys, m_Drag_Mode;
 
 
  620        bool                                            Get_Grid_Pos                    (
int &x, 
int &y)        
const;
 
  622        int                                                     Get_xGrid                               (
void)  
const;
 
  623        int                                                     Get_yGrid                               (
void)  
const;
 
 
  652typedef CSG_Tool *      (* TSG_PFNC_TLB_Create_Tool)    (
int i);
 
  686#define SYMBOL_TLB_Initialize                   "TLB_Initialize" 
  689#define SYMBOL_TLB_Finalize                             "TLB_Finalize" 
  692#define SYMBOL_TLB_Get_Interface                "TLB_Get_Interface" 
  696#define TLB_INTERFACE_SKIP_TOOL                 ((CSG_Tool *)0x1) 
  699#define TLB_INTERFACE_ESTABLISH CSG_Tool_Library_Interface TLB_Interface;\ 
  701extern "C" _SAGA_DLL_EXPORT CSG_Tool_Library_Interface *        TLB_Get_Interface   (void)\ 
  703        return( &TLB_Interface );\ 
 
  707#define TLB_INTERFACE_INITIALIZE extern "C" _SAGA_DLL_EXPORT bool TLB_Initialize(const SG_Char *TLB_Path)\ 
  709        return( TLB_Interface.Create(SAGA_VERSION, TLB_Path, Get_Info, Create_Tool) );\ 
 
  713#define TLB_INTERFACE_FINALIZE   extern "C" _SAGA_DLL_EXPORT bool TLB_Finalize  (void)\ 
 
  719#define TLB_INTERFACE   TLB_INTERFACE_ESTABLISH TLB_INTERFACE_INITIALIZE TLB_INTERFACE_FINALIZE 
bool SG_UI_Process_Get_Okay(bool bBlink)
@ SG_UI_DATAOBJECT_UPDATE
#define SAGA_API_DLL_EXPORT
static int Get_yTo(int Direction, int y=0)
static int Get_yFrom(int Direction, int y=0)
static int Get_xTo(int Direction, int x=0)
static int Get_xFrom(int Direction, int x=0)
int(* TSG_PFNC_Parameter_Changed)(CSG_Parameter *pParameter, int Flags)
@ PARAMETER_TYPE_Undefined