SAGA API v9.10
Loading...
Searching...
No Matches
api_callback.cpp
Go to the documentation of this file.
1
3// //
4// SAGA //
5// //
6// System for Automated Geoscientific Analyses //
7// //
8// Application Programming Interface //
9// //
10// Library: SAGA_API //
11// //
12//-------------------------------------------------------//
13// //
14// api_callback.cpp //
15// //
16// Copyright (C) 2005 by Olaf Conrad //
17// //
18//-------------------------------------------------------//
19// //
20// This file is part of 'SAGA - System for Automated //
21// Geoscientific Analyses'. //
22// //
23// This library is free software; you can redistribute //
24// it and/or modify it under the terms of the GNU Lesser //
25// General Public License as published by the Free //
26// Software Foundation, either version 2.1 of the //
27// License, or (at your option) any later version. //
28// //
29// This library is distributed in the hope that it will //
30// be useful, but WITHOUT ANY WARRANTY; without even the //
31// implied warranty of MERCHANTABILITY or FITNESS FOR A //
32// PARTICULAR PURPOSE. See the GNU Lesser General Public //
33// License for more details. //
34// //
35// You should have received a copy of the GNU Lesser //
36// General Public License along with this program; if //
37// not, see <http://www.gnu.org/licenses/>. //
38// //
39//-------------------------------------------------------//
40// //
41// contact: Olaf Conrad //
42// Institute of Geography //
43// University of Goettingen //
44// Goldschmidtstr. 5 //
45// 37077 Goettingen //
46// Germany //
47// //
48// e-mail: oconrad@saga-gis.org //
49// //
51
52//---------------------------------------------------------
53#include <wx/app.h>
54
55#include "api_core.h"
56#include "grid.h"
57#include "parameters.h"
58
59
61// //
62// //
63// //
65
66//---------------------------------------------------------
67#ifdef _SAGA_MSW
68static bool gSG_UI_Console_bUTF8 = false;
69#else
70static bool gSG_UI_Console_bUTF8 = true;
71#endif
72
75
76//---------------------------------------------------------
77void SG_UI_Console_Print_StdOut(const char *Text, SG_Char End, bool bFlush) { SG_UI_Console_Print_StdOut(CSG_String(Text), End, bFlush); }
78void SG_UI_Console_Print_StdOut(const wchar_t *Text, SG_Char End, bool bFlush) { SG_UI_Console_Print_StdOut(CSG_String(Text), End, bFlush); }
79void SG_UI_Console_Print_StdOut(const CSG_String &Text, SG_Char End, bool bFlush)
80{
82 {
83 printf("%s", Text.to_UTF8 ().Get_Data());
84 }
85 else
86 {
87 printf("%s", Text.to_ASCII().Get_Data());
88 }
89
90 if( End )
91 {
92 printf("%c", End);
93 }
94
95 if( bFlush )
96 {
97 fflush(stdout);
98 }
99}
100
101//---------------------------------------------------------
102void SG_UI_Console_Print_StdErr(const char *Text, SG_Char End, bool bFlush) { SG_UI_Console_Print_StdErr(CSG_String(Text), End, bFlush); }
103void SG_UI_Console_Print_StdErr(const wchar_t *Text, SG_Char End, bool bFlush) { SG_UI_Console_Print_StdErr(CSG_String(Text), End, bFlush); }
104void SG_UI_Console_Print_StdErr(const CSG_String &Text, SG_Char End, bool bFlush)
105{
107 {
108 fprintf(stderr, "%s", Text.to_UTF8 ().Get_Data());
109 }
110 else
111 {
112 fprintf(stderr, "%s", Text.to_ASCII().Get_Data());
113 }
114
115 if( End )
116 {
117 printf("%c", End);
118 }
119
120 if( bFlush )
121 {
122 fflush(stderr);
123 }
124}
125
126
128// //
129// //
130// //
132
133//---------------------------------------------------------
135
136//---------------------------------------------------------
138{
139 gSG_UI_Callback = Function;
140
141 return( true );
142}
143
144//---------------------------------------------------------
149
150
152// //
153// //
154// //
156
158{
159 Boolean = Copy.Boolean;
160 Number = Copy.Number ;
161 Pointer = Copy.Pointer;
162 String = Copy.String ;
163}
164
165
167// //
168// //
169// //
171
172//---------------------------------------------------------
174
175//---------------------------------------------------------
177{
178 if( bOn )
179 {
181 }
182 else if( gSG_UI_Progress_Lock > 0 )
183 {
185 }
186
187 return( gSG_UI_Progress_Lock );
188}
189
190//---------------------------------------------------------
192{
193 return( gSG_UI_Progress_Lock != 0 );
194}
195
196//---------------------------------------------------------
198{
199 int Locked = gSG_UI_Progress_Lock;
200
202
203 return( Locked );
204}
205
206//---------------------------------------------------------
207bool SG_UI_Process_Get_Okay(bool bBlink)
208{
209 if( gSG_UI_Callback )
210 {
211 CSG_UI_Parameter p1(gSG_UI_Progress_Lock == 0 && bBlink), p2;
212
213 return( gSG_UI_Callback(CALLBACK_PROCESS_GET_OKAY, p1, p2) != 0 );
214 }
215
216 if( gSG_UI_Progress_Lock == 0 && bBlink )
217 {
218 static int iBuisy = 0; static const SG_Char Buisy[4] = { '|', '/', '-', '\\' };
219
220 SG_UI_Console_Print_StdOut(CSG_String::Format("\r%c", Buisy[iBuisy++]), '\0', true);
221
222 iBuisy %= 4;
223 }
224
225 return( true );
226}
227
228//---------------------------------------------------------
230{
232 {
233 CSG_UI_Parameter p1(bOkay), p2;
234
235 return( gSG_UI_Callback(CALLBACK_PROCESS_SET_OKAY, p1, p2) != 0 );
236 }
237
238 return( true );
239}
240
241//---------------------------------------------------------
242bool SG_UI_Process_Set_Busy(bool bOn, const CSG_String &Message)
243{
244 if( gSG_UI_Callback )
245 {
246 CSG_UI_Parameter p1(bOn), p2(Message);
247
248 return( gSG_UI_Callback(CALLBACK_PROCESS_SET_BUSY, p1, p2) != 0 );
249 }
250
251 return( true );
252}
253
254//---------------------------------------------------------
255bool SG_UI_Process_Set_Progress(int Position, int Range)
256{
257 return( SG_UI_Process_Set_Progress((double)Position, (double)Range) );
258}
259
260//---------------------------------------------------------
262{
263 return( SG_UI_Process_Set_Progress((double)Position, (double)Range) );
264}
265
266//---------------------------------------------------------
267bool SG_UI_Process_Set_Progress(double Position, double Range)
268{
269 if( gSG_UI_Progress_Lock > 0 )
270 {
271 return( SG_UI_Process_Get_Okay() );
272 }
273
274 if( gSG_UI_Callback )
275 {
276 CSG_UI_Parameter p1(Position), p2(Range);
277
278 return( gSG_UI_Callback(CALLBACK_PROCESS_SET_PROGRESS, p1, p2) != 0 );
279 }
280
281 //-----------------------------------------------------
282 static int Progress = -1;
283
284 int i = Position < 0. ? -1 : Range > 0. ? 1 + (int)(100. * Position / Range) : 100;
285
286 if( Progress != i )
287 {
288 if( Progress < 0 || i < Progress )
289 {
290 SG_UI_Console_Print_StdOut("", '\n', true);
291 }
292
293 Progress = i;
294
295 if( Progress >= 0 )
296 {
297 SG_UI_Console_Print_StdOut(CSG_String::Format("\r%3d%%", Progress > 100 ? 100 : Progress), '\0', true);
298 }
299 }
300
301 return( true );
302}
303
304//---------------------------------------------------------
306{
307 if( gSG_UI_Callback )
308 {
309 if( gSG_UI_Progress_Lock == 0 )
310 {
311 CSG_UI_Parameter p1, p2;
312
313 return( gSG_UI_Callback(CALLBACK_PROCESS_SET_READY, p1, p2) != 0 );
314 }
315 }
316
318
319 return( true );
320}
321
322//---------------------------------------------------------
324{
325 if( gSG_UI_Progress_Lock == 0 )
326 {
327 if( gSG_UI_Callback )
328 {
329 CSG_UI_Parameter p1(Text), p2;
330
332 }
333 else
334 {
335 SG_UI_Console_Print_StdOut(Text, '\n', true);
336 }
337 }
338}
339
340
342// //
343// //
344// //
346
347//---------------------------------------------------------
348bool SG_UI_Stop_Execution(bool bDialog)
349{
350 if( gSG_UI_Callback )
351 {
352 CSG_UI_Parameter p1(bDialog), p2;
353
354 return( gSG_UI_Callback(CALLBACK_STOP_EXECUTION, p1, p2) != 0 );
355 }
356
357 return( false );
358}
359
360
362// //
363// //
364// //
366
367//---------------------------------------------------------
368void SG_UI_Dlg_Message(const CSG_String &Message, const CSG_String &Caption)
369{
370 if( gSG_UI_Progress_Lock == 0 )
371 {
372 if( gSG_UI_Callback )
373 {
374 CSG_UI_Parameter p1(Message), p2(Caption);
375
377 }
378 else
379 {
380 SG_UI_Console_Print_StdOut(CSG_String::Format("%s: %s", Caption.c_str(), Message.c_str()), '\n', true);
381 }
382 }
383}
384
385//---------------------------------------------------------
386bool SG_UI_Dlg_Continue(const CSG_String &Message, const CSG_String &Caption)
387{
388 if( gSG_UI_Progress_Lock == 0 )
389 {
390 if( gSG_UI_Callback )
391 {
392 CSG_UI_Parameter p1(Message), p2(Caption);
393
394 return( gSG_UI_Callback(CALLBACK_DLG_CONTINUE, p1, p2) != 0 );
395 }
396 }
397
398 return( true );
399}
400
401//---------------------------------------------------------
402int SG_UI_Dlg_Error(const CSG_String &Message, const CSG_String &Caption)
403{
404 if( gSG_UI_Progress_Lock != 0 )
405 {
406 SG_UI_Msg_Add_Error(Caption);
407 SG_UI_Msg_Add_Error(Message);
408
409 return( 0 );
410 }
411
412 if( gSG_UI_Callback )
413 {
414 CSG_UI_Parameter p1(Message), p2(Caption);
415
416 return( gSG_UI_Callback(CALLBACK_DLG_ERROR, p1, p2) );
417 }
418
419 return( 0 );
420}
421
422//---------------------------------------------------------
423void SG_UI_Dlg_Info(const CSG_String &Message, const CSG_String &Caption)
424{
425 if( gSG_UI_Callback )
426 {
427 CSG_UI_Parameter p1(Message), p2(Caption);
428
430 }
431 else
432 {
433 SG_UI_Console_Print_StdOut(CSG_String::Format("%s: %s", Caption.c_str(), Message.c_str()), '\n', true);
434 }
435}
436
437
439// //
440// //
441// //
443
444//---------------------------------------------------------
445bool SG_UI_Dlg_Parameters(CSG_Parameters *pParameters, const CSG_String &Caption)
446{
447 if( gSG_UI_Callback && pParameters )
448 {
449 CSG_UI_Parameter p1(pParameters), p2(Caption.is_Empty() ? pParameters->Get_Name() : Caption);
450
451 return( gSG_UI_Callback(CALLBACK_DLG_PARAMETERS, p1, p2) != 0 );
452 }
453
454 return( true );
455}
456
457
459// //
460// //
461// //
463
464//---------------------------------------------------------
466
467//---------------------------------------------------------
468int SG_UI_Msg_Lock(bool bOn)
469{
470 if( bOn )
471 {
473 }
474 else if( gSG_UI_Msg_Lock > 0 )
475 {
477 }
478
479 return( gSG_UI_Msg_Lock );
480}
481
482//---------------------------------------------------------
484{
485 return( gSG_UI_Msg_Lock != 0 );
486}
487
488//---------------------------------------------------------
490{
491 int Locked = gSG_UI_Msg_Lock;
492
493 gSG_UI_Msg_Lock = 0;
494
495 return( Locked );
496}
497
498//---------------------------------------------------------
499void SG_UI_Msg_Add(const char *Message, bool bNewLine, TSG_UI_MSG_STYLE Style) { SG_UI_Msg_Add(CSG_String(Message), bNewLine, Style); }
500void SG_UI_Msg_Add(const wchar_t *Message, bool bNewLine, TSG_UI_MSG_STYLE Style) { SG_UI_Msg_Add(CSG_String(Message), bNewLine, Style); }
501void SG_UI_Msg_Add(const CSG_String &Message, bool bNewLine, TSG_UI_MSG_STYLE Style)
502{
503 if( !gSG_UI_Msg_Lock )
504 {
505 if( gSG_UI_Callback )
506 {
507 int Flags[2]; Flags[0] = bNewLine ? 1 : 0; Flags[1] = Style;
508
509 CSG_UI_Parameter p1(Message), p2(Flags);
510
512 }
513 else
514 {
515 if( bNewLine )
516 {
518 }
519
520 SG_UI_Console_Print_StdOut(Message, '\0', true);
521 }
522 }
523}
524
525//---------------------------------------------------------
526void SG_UI_Msg_Add_Execution(const char *Message, bool bNewLine, TSG_UI_MSG_STYLE Style) { SG_UI_Msg_Add_Execution(CSG_String(Message), bNewLine, Style); }
527void SG_UI_Msg_Add_Execution(const wchar_t *Message, bool bNewLine, TSG_UI_MSG_STYLE Style) { SG_UI_Msg_Add_Execution(CSG_String(Message), bNewLine, Style); }
528void SG_UI_Msg_Add_Execution(const CSG_String &Message, bool bNewLine, TSG_UI_MSG_STYLE Style)
529{
530 if( !gSG_UI_Msg_Lock )
531 {
532 if( gSG_UI_Callback )
533 {
534 int Flags[2]; Flags[0] = bNewLine ? 1 : 0; Flags[1] = Style;
535
536 CSG_UI_Parameter p1(Message), p2(Flags);
537
539 }
540 else
541 {
542 if( bNewLine )
543 {
545 }
546
547 SG_UI_Console_Print_StdOut(Message, '\0', true);
548 }
549 }
550}
551
552//---------------------------------------------------------
553void SG_UI_Msg_Add_Error(const char *Message) { SG_UI_Msg_Add_Error(CSG_String(Message)); }
554void SG_UI_Msg_Add_Error(const wchar_t *Message) { SG_UI_Msg_Add_Error(CSG_String(Message)); }
555void SG_UI_Msg_Add_Error(const CSG_String &Message)
556{
557 if( !gSG_UI_Msg_Lock )
558 {
559 if( gSG_UI_Callback )
560 {
561 CSG_UI_Parameter p1(Message), p2;
562
564 }
565 else
566 {
567 SG_UI_Console_Print_StdErr(CSG_String::Format("\n[%s] %s", _TL("Error"), Message.c_str()), '\0', true);
568 }
569 }
570}
571
572//---------------------------------------------------------
574{
575 fflush(stdout);
576 fflush(stderr);
577}
578
580// //
581// //
582// //
584
585//---------------------------------------------------------
587{
589 SG_UI_Msg_Lock (bOn);
590}
591
592//---------------------------------------------------------
598
599
601// //
602// //
603// //
605
606//---------------------------------------------------------
607bool SG_UI_DataObject_Add(CSG_Data_Object *pDataObject, int Show)
608{
609 if( gSG_UI_Callback && pDataObject )
610 {
611 CSG_UI_Parameter p1(pDataObject), p2(Show);
612
613 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_ADD, p1, p2) != 0 );
614 }
615
616 return( false );
617}
618
619//---------------------------------------------------------
620bool SG_UI_DataObject_Del(CSG_Data_Object *pDataObject, bool bConfirm)
621{
622 if( gSG_UI_Callback && pDataObject )
623 {
624 CSG_UI_Parameter p1(pDataObject), p2(bConfirm);
625
626 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_DEL, p1, p2) != 0 );
627 }
628
629 return( false );
630}
631
632//---------------------------------------------------------
633bool SG_UI_DataObject_Update(CSG_Data_Object *pDataObject, int Show, CSG_Parameters *pParameters)
634{
635 if( gSG_UI_Callback && pDataObject )
636 {
637 CSG_UI_Parameter p1(pDataObject->Get_Owner() ? pDataObject->Get_Owner() : pDataObject), p2(pParameters);
638
640 {
641 if( Show != SG_UI_DATAOBJECT_UPDATE )
642 {
643 SG_UI_DataObject_Show(pDataObject, Show);
644 }
645
646 return( true );
647 }
648 }
649
650 return( false );
651}
652
653//---------------------------------------------------------
654bool SG_UI_DataObject_Show(CSG_Data_Object *pDataObject, int Show)
655{
656 if( gSG_UI_Callback && pDataObject )
657 {
658 CSG_UI_Parameter p1(pDataObject), p2(Show);
659
660 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_SHOW, p1, p2) != 0 );
661 }
662
663 return( false );
664}
665
666//---------------------------------------------------------
668{
669 if( gSG_UI_Callback && pDataObject )
670 {
671 CSG_UI_Parameter p1(pDataObject), p2(pGrid);
672
673 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_ASIMAGE, p1, p2) != 0 );
674 }
675
676 return( false );
677}
678
679//---------------------------------------------------------
681{
682 if( gSG_UI_Callback && pDataObject && pColors )
683 {
684 CSG_UI_Parameter p1(pDataObject), p2(pColors);
685
686 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_COLORS_GET, p1, p2) != 0 );
687 }
688
689 return( false );
690}
691
692//---------------------------------------------------------
694{
695 if( gSG_UI_Progress_Lock == 0 && gSG_UI_Callback && pDataObject && pColors )
696 {
697 CSG_UI_Parameter p1(pDataObject), p2(pColors);
698
699 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_COLORS_SET, p1, p2) != 0 );
700 }
701
702 return( false );
703}
704
705//---------------------------------------------------------
707{
708 if( gSG_UI_Progress_Lock == 0 && gSG_UI_Callback && pDataObject )
709 {
710 CSG_UI_Parameter p1(pDataObject), p2((void *)&Options);
711
712 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_CLASSIFY, p1, p2) != 0 );
713 }
714
715 return( false );
716}
717
718//---------------------------------------------------------
720{
721 if( gSG_UI_Callback && pDataObject && pParameters )
722 {
723 CSG_UI_Parameter p1(pDataObject), p2(pParameters);
724
725 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_PARAMS_GET, p1, p2) != 0 );
726 }
727
728 return( false );
729}
730
731//---------------------------------------------------------
733{
734 if( gSG_UI_Progress_Lock == 0 && gSG_UI_Callback && pDataObject && pParameters )
735 {
736 CSG_UI_Parameter p1(pDataObject), p2(pParameters);
737
738 return( gSG_UI_Callback(CALLBACK_DATAOBJECT_PARAMS_SET, p1, p2) != 0 );
739 }
740
741 return( false );
742}
743
744//---------------------------------------------------------
745bool SG_UI_Set_Map_Extent (double xMin, double yMin, double xMax, double yMax, int Maps)
746{
747 if( gSG_UI_Callback )
748 {
749 CSG_Rect r(xMin, yMin, xMax, yMax); CSG_UI_Parameter p1(&r), p2(Maps);
750
751 return( gSG_UI_Callback(CALLBACK_SET_MAP_EXTENT, p1, p2) != 0 );
752 }
753
754 return( false );
755}
756
757//---------------------------------------------------------
758bool SG_UI_Diagram_Show (class CSG_Table *pTable, class CSG_Parameters *pParameters)
759{
761 {
762 CSG_UI_Parameter p1(pTable), p2(pParameters);
763
764 return( gSG_UI_Callback(CALLBACK_DIAGRAM_SHOW, p1, p2) != 0 );
765 }
766
767 return( false );
768}
769
770//---------------------------------------------------------
771bool SG_UI_ODBC_Update (const CSG_String &Server)
772{
773 if( gSG_UI_Callback )
774 {
775 CSG_UI_Parameter p1(Server), p2;
776
777 return( gSG_UI_Callback(CALLBACK_DATABASE_UPDATE, p1, p2) != 0 );
778 }
779
780 return( false );
781}
782
783
785// //
786// //
787// //
789
790//---------------------------------------------------------
791int SG_UI_Window_Arrange (int Arrange)
792{
793 if( gSG_UI_Callback )
794 {
795 CSG_UI_Parameter p1, p2;
796
798
799 return( 1 );
800 }
801
802 return( 0 );
803}
804
805//---------------------------------------------------------
807{
808 if( gSG_UI_Callback )
809 {
810 CSG_UI_Parameter p1, p2;
811
813
814 return( p1.Pointer );
815 }
816
817 return( NULL );
818}
819
820
822// //
823// //
824// //
826
827//---------------------------------------------------------
bool SG_UI_DataObject_Update(CSG_Data_Object *pDataObject, int Show, CSG_Parameters *pParameters)
void SG_UI_Msg_Add_Error(const char *Message)
int SG_UI_Dlg_Error(const CSG_String &Message, const CSG_String &Caption)
void SG_UI_Console_Print_StdErr(const char *Text, SG_Char End, bool bFlush)
bool SG_UI_Stop_Execution(bool bDialog)
bool SG_UI_Process_Get_Okay(bool bBlink)
bool SG_UI_Dlg_Parameters(CSG_Parameters *pParameters, const CSG_String &Caption)
bool SG_UI_Process_Set_Busy(bool bOn, const CSG_String &Message)
bool SG_UI_DataObject_Colors_Get(CSG_Data_Object *pDataObject, CSG_Colors *pColors)
bool SG_UI_Progress_is_Locked(void)
void SG_UI_Msg_Add(const char *Message, bool bNewLine, TSG_UI_MSG_STYLE Style)
int gSG_UI_Progress_Lock
bool SG_UI_Console_Get_UTF8(void)
bool SG_Set_UI_Callback(TSG_PFNC_UI_Callback Function)
bool SG_UI_DataObject_asImage(CSG_Data_Object *pDataObject, CSG_Grid *pGrid)
bool SG_UI_DataObject_Params_Get(CSG_Data_Object *pDataObject, CSG_Parameters *pParameters)
int SG_UI_Window_Arrange(int Arrange)
bool SG_UI_DataObject_Show(CSG_Data_Object *pDataObject, int Show)
void SG_UI_Process_Set_Text(const CSG_String &Text)
bool SG_UI_Process_Set_Ready(void)
bool SG_UI_Process_Set_Progress(int Position, int Range)
int SG_UI_Msg_Reset(void)
void SG_UI_Dlg_Info(const CSG_String &Message, const CSG_String &Caption)
bool SG_UI_DataObject_Add(CSG_Data_Object *pDataObject, int Show)
int gSG_UI_Msg_Lock
void SG_UI_Console_Print_StdOut(const char *Text, SG_Char End, bool bFlush)
bool SG_UI_Diagram_Show(class CSG_Table *pTable, class CSG_Parameters *pParameters)
void SG_UI_Msg_Add_Execution(const char *Message, bool bNewLine, TSG_UI_MSG_STYLE Style)
void SG_UI_ProgressAndMsg_Reset(void)
void * SG_UI_Get_Window_Main(void)
void SG_UI_Console_Set_UTF8(bool bOn)
void SG_UI_Msg_Flush(void)
bool SG_UI_Process_Set_Okay(bool bOkay)
bool SG_UI_DataObject_Del(CSG_Data_Object *pDataObject, bool bConfirm)
TSG_PFNC_UI_Callback gSG_UI_Callback
bool SG_UI_ODBC_Update(const CSG_String &Server)
bool SG_UI_DataObject_Params_Set(CSG_Data_Object *pDataObject, CSG_Parameters *pParameters)
int SG_UI_Msg_Lock(bool bOn)
void SG_UI_Dlg_Message(const CSG_String &Message, const CSG_String &Caption)
static bool gSG_UI_Console_bUTF8
void SG_UI_ProgressAndMsg_Lock(bool bOn)
int SG_UI_Progress_Lock(bool bOn)
bool SG_UI_DataObject_Colors_Set(CSG_Data_Object *pDataObject, CSG_Colors *pColors)
TSG_PFNC_UI_Callback SG_Get_UI_Callback(void)
bool SG_UI_Dlg_Continue(const CSG_String &Message, const CSG_String &Caption)
bool SG_UI_Set_Map_Extent(double xMin, double yMin, double xMax, double yMax, int Maps)
int SG_UI_Progress_Reset(void)
bool SG_UI_DataObject_Classify(CSG_Data_Object *pDataObject, const CSG_MetaData &Options)
bool SG_UI_Msg_is_Locked(void)
TSG_UI_MSG_STYLE
Definition api_core.h:1580
signed long long sLong
Definition api_core.h:158
@ SG_UI_DATAOBJECT_UPDATE
Definition api_core.h:1597
int(* TSG_PFNC_UI_Callback)(TSG_UI_Callback_ID ID, CSG_UI_Parameter &Param_1, CSG_UI_Parameter &Param_2)
Definition api_core.h:1702
#define SG_Char
Definition api_core.h:536
@ CALLBACK_GET_APP_WINDOW
Definition api_core.h:1674
@ CALLBACK_DLG_INFO
Definition api_core.h:1644
@ CALLBACK_SET_MAP_EXTENT
Definition api_core.h:1666
@ CALLBACK_PROCESS_SET_PROGRESS
Definition api_core.h:1635
@ CALLBACK_STOP_EXECUTION
Definition api_core.h:1639
@ CALLBACK_DLG_ERROR
Definition api_core.h:1643
@ CALLBACK_WINDOW_ARRANGE
Definition api_core.h:1672
@ CALLBACK_MESSAGE_ADD_ERROR
Definition api_core.h:1649
@ CALLBACK_DATAOBJECT_UPDATE
Definition api_core.h:1654
@ CALLBACK_PROCESS_SET_TEXT
Definition api_core.h:1637
@ CALLBACK_DATAOBJECT_PARAMS_GET
Definition api_core.h:1663
@ CALLBACK_PROCESS_SET_BUSY
Definition api_core.h:1634
@ CALLBACK_DIAGRAM_SHOW
Definition api_core.h:1668
@ CALLBACK_DLG_MESSAGE
Definition api_core.h:1641
@ CALLBACK_DATAOBJECT_COLORS_GET
Definition api_core.h:1658
@ CALLBACK_DLG_CONTINUE
Definition api_core.h:1642
@ CALLBACK_DATAOBJECT_COLORS_SET
Definition api_core.h:1659
@ CALLBACK_DLG_PARAMETERS
Definition api_core.h:1646
@ CALLBACK_MESSAGE_ADD
Definition api_core.h:1648
@ CALLBACK_DATAOBJECT_ASIMAGE
Definition api_core.h:1656
@ CALLBACK_DATAOBJECT_PARAMS_SET
Definition api_core.h:1664
@ CALLBACK_DATABASE_UPDATE
Definition api_core.h:1670
@ CALLBACK_DATAOBJECT_ADD
Definition api_core.h:1652
@ CALLBACK_DATAOBJECT_SHOW
Definition api_core.h:1655
@ CALLBACK_DATAOBJECT_DEL
Definition api_core.h:1653
@ CALLBACK_PROCESS_SET_READY
Definition api_core.h:1636
@ CALLBACK_PROCESS_GET_OKAY
Definition api_core.h:1632
@ CALLBACK_PROCESS_SET_OKAY
Definition api_core.h:1633
@ CALLBACK_DATAOBJECT_CLASSIFY
Definition api_core.h:1661
@ CALLBACK_MESSAGE_ADD_EXECUTION
Definition api_core.h:1650
#define _TL(s)
Definition api_core.h:1568
CSG_Data_Object * Get_Owner(void) const
Definition dataobject.h:231
const CSG_String & Get_Name(void) const
size_t to_UTF8(char **pString) const
static CSG_String Format(const char *Format,...)
const SG_Char * c_str(void) const
bool to_ASCII(char **pString, char Replace='_') const
bool is_Empty(void) const
CSG_UI_Parameter(void)
Definition api_core.h:1683
CSG_String String
Definition api_core.h:1697