~ubuntu-branches/ubuntu/natty/glbsp/natty

« back to all changes in this revision

Viewing changes to fltk/local.h

  • Committer: Bazaar Package Importer
  • Author(s): Darren Salt
  • Date: 2008-01-30 13:33:49 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080130133349-kgojg33vyiu8xbvp
Tags: 2.24-1
* New upstream release.
* Bumped the lib soname and the library package name due to one silly
  little binary incompatibility caused by changes in an exported struct.
  (Safe; nothing else currently in the archive has ever used libglbsp2.)
* Removed my patches since they're all applied upstream.
* Updated the list of documentation files.
* Build-time changes:
  - Switched from dh_movefiles to dh_install.
  - Updated my makefile to cope with upstream changes.
  - Corrected for debian-rules-ignores-make-clean-error.
  - Corrected for substvar-source-version-is-deprecated.
  - Link libglbsp, rather than glbsp, with libm and libz.
* Fixed shlibdeps. (Closes: #460387)
* Bumped standards version to 3.7.3 (no other changes).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//------------------------------------------------------------------------
2
 
// LOCAL : Unix/FLTK local definitions
3
 
//------------------------------------------------------------------------
4
 
//
5
 
//  GL-Friendly Node Builder (C) 2000-2005 Andrew Apted
6
 
//
7
 
//  Based on 'BSP 2.3' by Colin Reed, Lee Killough and others.
8
 
//
9
 
//  This program is free software; you can redistribute it and/or
10
 
//  modify it under the terms of the GNU General Public License
11
 
//  as published by the Free Software Foundation; either version 2
12
 
//  of the License, or (at your option) any later version.
13
 
//
14
 
//  This program is distributed in the hope that it will be useful,
15
 
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 
//  GNU General Public License for more details.
18
 
//
19
 
//------------------------------------------------------------------------
20
 
 
21
 
#ifndef __GLBSP_LOCAL_H__
22
 
#define __GLBSP_LOCAL_H__
23
 
 
24
 
 
25
 
// consistency check
26
 
#ifndef GLBSP_GUI
27
 
#error GLBSP_GUI should be defined when compiling this file
28
 
#endif
29
 
 
30
 
// use this for inlining.  Usually defined in the makefile.
31
 
#ifndef INLINE_G
32
 
#define INLINE_G  /* nothing */
33
 
#endif
34
 
 
35
 
 
36
 
//
37
 
//  INCLUDES
38
 
//
39
 
 
40
 
#include "../glbsp.h"
41
 
 
42
 
#include <stdio.h>
43
 
#include <stdlib.h>
44
 
#include <string.h>
45
 
#include <stdarg.h>
46
 
#include <ctype.h>
47
 
#include <math.h>
48
 
#include <limits.h>
49
 
#include <assert.h>
50
 
 
51
 
#include <FL/Fl.H>
52
 
#include <FL/Fl_Box.H>
53
 
#include <FL/Fl_Browser.H>
54
 
#include <FL/Fl_Button.H>
55
 
#include <FL/Fl_Check_Button.H>
56
 
#include <FL/Fl_Counter.H>
57
 
#include <FL/Fl_File_Icon.H>
58
 
#include <FL/Fl_Group.H>
59
 
#include <FL/Fl_Hold_Browser.H>
60
 
#include <FL/Fl_Image.H>
61
 
#include <FL/Fl_Input.H>
62
 
#include <FL/Fl_Menu_Bar.H>
63
 
#include <FL/Fl_Menu_Item.H>
64
 
#include <FL/Fl_Multiline_Output.H>
65
 
#include <FL/Fl_Multi_Browser.H>
66
 
#include <FL/Fl_Pack.H>
67
 
#include <FL/Fl_Pixmap.H>
68
 
#include <FL/Fl_Return_Button.H>
69
 
#include <FL/Fl_Round_Button.H>
70
 
#include <FL/Fl_Scrollbar.H>
71
 
#include <FL/Fl_Slider.H>
72
 
#ifdef MACOSX
73
 
#include <FL/Fl_Sys_Menu_Bar.H>
74
 
#endif
75
 
#include <FL/Fl_Value_Input.H>
76
 
#include <FL/Fl_Widget.H>
77
 
#include <FL/Fl_Window.H>
78
 
 
79
 
#include <FL/fl_ask.H>
80
 
#include <FL/fl_draw.H>
81
 
#include <FL/Fl_File_Chooser.H>
82
 
 
83
 
 
84
 
//
85
 
//  MAIN
86
 
//
87
 
 
88
 
typedef struct guix_preferences_s
89
 
{
90
 
  // main window position & size
91
 
  int win_x, win_y;
92
 
  int win_w, win_h;
93
 
  
94
 
  // positions & sizes of other windows
95
 
  int progress_x, progress_y;
96
 
  int dialog_x, dialog_y;
97
 
  int other_x, other_y;
98
 
 
99
 
  int manual_x, manual_y;
100
 
  int manual_w, manual_h;
101
 
  int manual_page;
102
 
  
103
 
  // warn about overwriting files
104
 
  boolean_g overwrite_warn;
105
 
 
106
 
  // warn about input file == output file
107
 
  boolean_g same_file_warn;
108
 
 
109
 
  // warn about missing extensions
110
 
  boolean_g lack_ext_warn;
111
 
 
112
 
  // filename for saving the log
113
 
  const char *save_log_file;
114
 
}
115
 
guix_preferences_t;
116
 
 
117
 
extern guix_preferences_t guix_prefs;
118
 
 
119
 
extern nodebuildinfo_t guix_info;
120
 
extern volatile nodebuildcomms_t guix_comms;
121
 
extern const nodebuildfuncs_t guix_funcs;
122
 
 
123
 
void MainSetDefaults(void);
124
 
 
125
 
 
126
 
//
127
 
//  ABOUT
128
 
//
129
 
 
130
 
extern const unsigned char about_image_pal[256 * 3];
131
 
extern const unsigned char about_image_data[];
132
 
 
133
 
#define ABOUT_IMG_W  190
134
 
#define ABOUT_IMG_H  190
135
 
 
136
 
 
137
 
//
138
 
//  BOOK
139
 
//
140
 
 
141
 
typedef struct book_page_s
142
 
{
143
 
  // array of lines, ends with NULL.
144
 
  // Link lines start with '#L' and two decimal digits.
145
 
  // Paragraphcs start with '#P' and two digits, first digit is major
146
 
  // indent level, second digit is minor indent level.
147
 
  // 
148
 
  const char ** text;
149
 
}
150
 
book_page_t;
151
 
 
152
 
class Guix_Book : public Fl_Window
153
 
{
154
 
public:
155
 
  Guix_Book();
156
 
  virtual ~Guix_Book();
157
 
 
158
 
  // override resize method, reformat text
159
 
  virtual FL_EXPORT void resize(int,int,int,int);
160
 
 
161
 
  // child widgets
162
 
  Fl_Group *group;
163
 
    
164
 
  Fl_Button *quit;
165
 
  Fl_Button *contents;
166
 
  Fl_Button *next;
167
 
  Fl_Button *prev;
168
 
  
169
 
  Fl_Hold_Browser *browser;
170
 
 
171
 
  boolean_g want_quit;
172
 
 
173
 
  int cur_page;
174
 
 
175
 
  // total number of pages ?
176
 
  int PageCount();
177
 
 
178
 
  // load a new page into the browser.  Updates 'page_num'.  This
179
 
  // routine should be called shortly after construction, to display
180
 
  // the initial page.  Zero will get the contents page.  Invalid
181
 
  // page numbers will be safely ignored.
182
 
  //
183
 
  void LoadPage(int new_num);
184
 
 
185
 
  // take the appropriate action for the given line number.
186
 
  void FollowLink(int line);
187
 
 
188
 
  // handle various internal "to do" items.  This is here since
189
 
  // modifying widgets (esp. clearing and adding lines to the hold
190
 
  // browser) from within their callbacks seems like a risky business
191
 
  // to me.  Should be called in the Fl::wait() loop.
192
 
  //
193
 
  void Update();
194
 
 
195
 
  // page to change to, otherwise BOOK_NO_PAGE
196
 
  int want_page;
197
 
 
198
 
protected:
199
 
 
200
 
  boolean_g want_reformat;
201
 
 
202
 
  // initial window position and size
203
 
  int init_x, init_y;
204
 
  int init_w, init_h;
205
 
 
206
 
  // -- paragraph code --
207
 
  
208
 
  boolean_g in_paragraph;
209
 
  boolean_g first_line;
210
 
  
211
 
  int major_indent;
212
 
  int minor_indent;
213
 
 
214
 
  char para_buf[1024];
215
 
  int para_width;
216
 
 
217
 
  void ParaStart();
218
 
  void ParaEnd();
219
 
 
220
 
  void ParaAddWord(const char *word);
221
 
  void ParaAddLine(const char *line);
222
 
};
223
 
 
224
 
#define BOOK_NO_PAGE  -50
225
 
 
226
 
extern const book_page_t book_pages[];
227
 
extern Guix_Book * guix_book_win;
228
 
 
229
 
 
230
 
class Guix_License : public Fl_Window
231
 
{
232
 
public:
233
 
  Guix_License();
234
 
  virtual ~Guix_License();
235
 
 
236
 
  // child widgets
237
 
  Fl_Group *group;
238
 
  Fl_Button *quit;
239
 
  Fl_Browser *browser;
240
 
 
241
 
  boolean_g want_quit;
242
 
 
243
 
protected:
244
 
 
245
 
  // initial window position and size
246
 
  int init_x, init_y;
247
 
  int init_w, init_h;
248
 
};
249
 
 
250
 
extern Guix_License * guix_lic_win;
251
 
 
252
 
 
253
 
//
254
 
//  COOKIE
255
 
//
256
 
 
257
 
typedef enum
258
 
{
259
 
  COOKIE_E_OK = 0,
260
 
  COOKIE_E_NO_FILE = 1,
261
 
  COOKIE_E_PARSE_ERRORS = 2,
262
 
  COOKIE_E_CHECK_ERRORS = 3
263
 
}
264
 
cookie_status_t;
265
 
 
266
 
void CookieSetPath(const char *argv0);
267
 
cookie_status_t CookieReadAll(void);
268
 
cookie_status_t CookieWriteAll(void);
269
 
 
270
 
 
271
 
//
272
 
//  DIALOG
273
 
//
274
 
 
275
 
void DialogLoadImages(void);
276
 
void DialogFreeImages(void);
277
 
 
278
 
int DialogShowAndGetChoice(const char *title, Fl_Pixmap *pic, 
279
 
    const char *message, const char *left = "OK", 
280
 
    const char *middle = NULL, const char *right = NULL);
281
 
 
282
 
int DialogQueryFilename(const char *message,
283
 
    const char ** name_ptr, const char *guess_name);
284
 
 
285
 
void GUI_FatalError(const char *str, ...);
286
 
 
287
 
 
288
 
//
289
 
//  FILES
290
 
//
291
 
 
292
 
class Guix_FileBox : public Fl_Group
293
 
{
294
 
public:
295
 
  Guix_FileBox(int x, int y, int w, int h);
296
 
  virtual ~Guix_FileBox();
297
 
 
298
 
  // child widgets in File area
299
 
  Fl_Box *in_label;
300
 
  Fl_Box *out_label;
301
 
 
302
 
  Fl_Input *in_file;
303
 
  Fl_Input *out_file;
304
 
  Fl_Output *out_gwa_file;
305
 
 
306
 
  Fl_Button *in_browse;
307
 
  Fl_Button *out_browse;
308
 
  Fl_Button *out_guess;
309
 
 
310
 
  // filename to produce when in GWA mode.
311
 
  const char *gwa_filename;
312
 
  
313
 
  // group for file boxes, to handle resizing properly.
314
 
  Fl_Group *file_group;
315
 
 
316
 
  // routine to set the input widgets based on the build-info.
317
 
  void ReadInfo();
318
 
 
319
 
  // routine to change the build-info to match the widgets.
320
 
  void WriteInfo();
321
 
 
322
 
  // routine to call when GWA mode changes state.
323
 
  void GWA_Changed();
324
 
 
325
 
  // routine to call when the in_file changes.  It should compute
326
 
  // a new value for 'gwa_filename', and update the out_gwa_file
327
 
  // widget.
328
 
  //
329
 
  void InFileChanged();
330
 
 
331
 
  // locking routine (see Guix_MainWin)
332
 
  void LockOut(boolean_g lock_it);
333
 
};
334
 
 
335
 
class Guix_FactorBox : public Fl_Group
336
 
{
337
 
public:
338
 
  Guix_FactorBox(int x, int y, int w, int h);
339
 
  virtual ~Guix_FactorBox();
340
 
 
341
 
  // child widget
342
 
  Fl_Counter *factor;
343
 
 
344
 
  // routine to set the input widget based on the build-info.
345
 
  void ReadInfo();
346
 
 
347
 
  // routine to change the build-info to match the input.
348
 
  void WriteInfo();
349
 
 
350
 
  // locking routine (see Guix_MainWin)
351
 
  void LockOut(boolean_g lock_it);
352
 
};
353
 
 
354
 
class Guix_BuildButton : public Fl_Group
355
 
{
356
 
public:
357
 
  Guix_BuildButton(int x, int y, int w, int h);
358
 
  virtual ~Guix_BuildButton();
359
 
 
360
 
  // child widget
361
 
  Fl_Button *build;
362
 
  Fl_Button *stopper;
363
 
 
364
 
  // locking routine (see Guix_MainWin)
365
 
  void LockOut(boolean_g lock_it);
366
 
};
367
 
 
368
 
#define ALERT_TXT  "glBSP Alert"
369
 
#define MISSING_COMMS  "(Not Specified)"
370
 
 
371
 
 
372
 
//
373
 
//  HELPER
374
 
//
375
 
 
376
 
int HelperCaseCmp(const char *A, const char *B);
377
 
int HelperCaseCmpLen(const char *A, const char *B, int len);
378
 
 
379
 
unsigned int HelperGetMillis();
380
 
 
381
 
boolean_g HelperFilenameValid(const char *filename);
382
 
boolean_g HelperHasExt(const char *filename);
383
 
boolean_g HelperCheckExt(const char *filename, const char *ext);
384
 
char *HelperReplaceExt(const char *filename, const char *ext);
385
 
char *HelperGuessOutput(const char *filename);
386
 
boolean_g HelperFileExists(const char *filename);
387
 
 
388
 
 
389
 
//
390
 
//  IMAGES
391
 
//
392
 
 
393
 
extern const char * pldie_image_data[];
394
 
extern const char * skull_image_data[];
395
 
 
396
 
extern Fl_Image * about_image;
397
 
extern Fl_Pixmap * pldie_image;
398
 
extern Fl_Pixmap * skull_image;
399
 
 
400
 
 
401
 
//
402
 
//  LICENSE
403
 
//
404
 
 
405
 
extern const char *license_text[];
406
 
 
407
 
 
408
 
//
409
 
//  MENU
410
 
//
411
 
 
412
 
#define MANUAL_WINDOW_MIN_W  500
413
 
#define MANUAL_WINDOW_MIN_H  200
414
 
 
415
 
#ifdef MACOSX
416
 
Fl_Sys_Menu_Bar
417
 
#else
418
 
Fl_Menu_Bar
419
 
#endif
420
 
* MenuCreate(int x, int y, int w, int h);
421
 
 
422
 
 
423
 
//
424
 
//  OPTIONS
425
 
//
426
 
 
427
 
class Guix_BuildMode : public Fl_Group
428
 
{
429
 
public:
430
 
  Guix_BuildMode(int x, int y, int w, int h);
431
 
  virtual ~Guix_BuildMode();
432
 
 
433
 
  // child widgets: a set of radio buttons
434
 
  Fl_Button *gwa;
435
 
  Fl_Button *maybe_normal;
436
 
  Fl_Button *both;
437
 
  Fl_Button *gl_only;
438
 
 
439
 
  // this routine sets one of the radio buttons on, based on the given
440
 
  // build-information.
441
 
  //
442
 
  void ReadInfo();
443
 
 
444
 
  // this routine does the reverse, setting the 'gwa_mode', 'no_normal'
445
 
  // and 'force_normal' fields based on which radio button is currently
446
 
  // active.
447
 
  //
448
 
  void WriteInfo();
449
 
 
450
 
  // locking routine (see Guix_MainWin)
451
 
  void LockOut(boolean_g lock_it);
452
 
};
453
 
 
454
 
class Guix_MiscOptions : public Fl_Group
455
 
{
456
 
public:
457
 
  Guix_MiscOptions(int x, int y, int w, int h);
458
 
  virtual ~Guix_MiscOptions();
459
 
 
460
 
  // child widgets: a set of toggle buttons
461
 
  Fl_Button *choose_fresh;
462
 
  Fl_Button *warnings;
463
 
  Fl_Button *no_reject;
464
 
  Fl_Button *pack_sides;
465
 
 
466
 
  // routine to set the buttons based on the build-info.
467
 
  void ReadInfo();
468
 
 
469
 
  // routine to change the build-info to match the buttons.
470
 
  void WriteInfo();
471
 
  
472
 
  // routine to call when GWA mode changes state.
473
 
  void GWA_Changed();
474
 
 
475
 
  // locking routine (see Guix_MainWin)
476
 
  void LockOut(boolean_g lock_it);
477
 
};
478
 
 
479
 
 
480
 
//
481
 
//  PREFS
482
 
//
483
 
 
484
 
class Guix_PrefWin : public Fl_Window
485
 
{
486
 
public:
487
 
  // constructor reads the guix_pref values.
488
 
  // destructor writes them.
489
 
 
490
 
  Guix_PrefWin();
491
 
  virtual ~Guix_PrefWin();
492
 
 
493
 
  boolean_g want_quit;
494
 
 
495
 
  // child widgets
496
 
  Fl_Group *groups[3];
497
 
 
498
 
  Fl_Button *overwrite;
499
 
  Fl_Button *same_file;
500
 
  Fl_Button *lack_ext;
501
 
 
502
 
  // color stuff ??
503
 
 
504
 
  Fl_Button *reset_all;
505
 
  Fl_Button *quit;
506
 
 
507
 
  // routine called by "reset all" button
508
 
  void PrefsChanged();
509
 
 
510
 
protected:
511
 
 
512
 
  // initial window position
513
 
  int init_x, init_y;
514
 
};
515
 
 
516
 
extern Guix_PrefWin * guix_pref_win;
517
 
 
518
 
 
519
 
//
520
 
//  PROGRESS
521
 
//
522
 
 
523
 
typedef struct guix_bar_s
524
 
{
525
 
  // widgets
526
 
  Fl_Box *label;
527
 
  Fl_Slider *slide;
528
 
  Fl_Box *perc;
529
 
 
530
 
  // current string for bar
531
 
  const char *lab_str;
532
 
 
533
 
  // string buffer for percentage
534
 
  char perc_buf[16];
535
 
 
536
 
  int perc_shown;
537
 
  // current percentage shown (avoid updating widget)
538
 
}
539
 
guix_bar_t;
540
 
 
541
 
class Guix_ProgressBox : public Fl_Group
542
 
{
543
 
public:
544
 
  Guix_ProgressBox(int x, int y, int w, int h);
545
 
  virtual ~Guix_ProgressBox();
546
 
 
547
 
  // child widgets
548
 
  guix_bar_t bars[2];
549
 
 
550
 
  Fl_Group *group;
551
 
 
552
 
  // current message strings
553
 
  const char *title_str;
554
 
 
555
 
  // current number of bars (READ ONLY from outside)
556
 
  int curr_bars;
557
 
 
558
 
  // sets the number of active bars.  Must be 1 or 2.
559
 
  void SetBars(int num);
560
 
  
561
 
  // clear the progress bars (e.g. when stopped by user)
562
 
  void ClearBars(void);
563
 
  
564
 
  // set the short name of the bar
565
 
  void SetBarName(int which, const char *label_short);
566
 
   
567
 
protected:
568
 
 
569
 
  // initial window position
570
 
  int init_x, init_y;
571
 
 
572
 
  void CreateOneBar(guix_bar_t& bar, int x, int y, int w, int h);
573
 
 
574
 
  void SetupOneBar(guix_bar_t& bar, int y, const char *label_short, 
575
 
      Fl_Color col);
576
 
};
577
 
 
578
 
void GUI_Ticker(void);
579
 
 
580
 
boolean_g GUI_DisplayOpen(displaytype_e type);
581
 
void GUI_DisplaySetTitle(const char *str);
582
 
void GUI_DisplaySetBar(int barnum, int count);
583
 
void GUI_DisplaySetBarLimit(int barnum, int limit);
584
 
void GUI_DisplaySetBarText(int barnum, const char *str);
585
 
void GUI_DisplayClose(void);
586
 
 
587
 
 
588
 
//
589
 
//  TEXTBOX
590
 
//
591
 
 
592
 
class Guix_TextBox : public Fl_Multi_Browser
593
 
{
594
 
public:
595
 
  Guix_TextBox(int x, int y, int w, int h);
596
 
  virtual ~Guix_TextBox();
597
 
 
598
 
  // adds the message to the text box.  The message may contain
599
 
  // newlines ('\n').  The message doesn't need a trailing '\n', i.e.
600
 
  // it is implied.
601
 
  //
602
 
  void AddMsg(const char *msg, Fl_Color col = FL_BLACK, 
603
 
      boolean_g bold = FALSE);
604
 
 
605
 
  // add a horizontal dividing bar
606
 
  void AddHorizBar();
607
 
  
608
 
  // routine to clear the text box
609
 
  void ClearLog();
610
 
 
611
 
  // routine to save the log to a file.  Will overwrite the file if
612
 
  // already exists.  Returns TRUE if successful or FALSE on error.
613
 
  //
614
 
  boolean_g SaveLog(const char *filename);
615
 
 
616
 
  // locking routine (see Guix_MainWin)
617
 
  void LockOut(boolean_g lock_it);
618
 
};
619
 
 
620
 
void GUI_PrintMsg(const char *str, ...);
621
 
 
622
 
 
623
 
//
624
 
//  WINDOW
625
 
//
626
 
 
627
 
#define MAIN_BG_COLOR  fl_gray_ramp(FL_NUM_GRAY * 9 / 24)
628
 
 
629
 
#define MAIN_WINDOW_MIN_W  540
630
 
#define MAIN_WINDOW_MIN_H  450
631
 
 
632
 
class Guix_MainWin : public Fl_Window
633
 
{
634
 
public:
635
 
  Guix_MainWin(const char *title);
636
 
  virtual ~Guix_MainWin();
637
 
 
638
 
  // main child widgets
639
 
  
640
 
#ifdef MACOSX
641
 
  Fl_Sys_Menu_Bar *menu_bar;
642
 
#else
643
 
  Fl_Menu_Bar *menu_bar;
644
 
#endif
645
 
 
646
 
  Guix_BuildMode *build_mode;
647
 
  Guix_MiscOptions *misc_opts;
648
 
  Guix_FactorBox *factor;
649
 
 
650
 
  Guix_FileBox *files;
651
 
  Guix_ProgressBox *progress;
652
 
  Guix_BuildButton *builder;
653
 
  Guix_TextBox *text_box;
654
 
 
655
 
  // user closed the window
656
 
  boolean_g want_quit;
657
 
  
658
 
  // routine to capture the current main window state into the
659
 
  // guix_preferences_t structure.
660
 
  // 
661
 
  void WritePrefs();
662
 
 
663
 
  // this routine is useful if the nodebuildinfo has changed.  It
664
 
  // causes all the widgets to update themselves using the new
665
 
  // parameters.
666
 
  // 
667
 
  void ReadAllInfo();
668
 
  
669
 
  // routine to capture all of the nodebuildinfo state from the
670
 
  // various widgets.  Note: don't need to call this before
671
 
  // destructing everything -- the widget destructors will do it
672
 
  // automatically.
673
 
  // 
674
 
  void WriteAllInfo();
675
 
 
676
 
  // this routine will update the user interface to prevent the user
677
 
  // from modifying most of the widgets (used during building).  When
678
 
  // 'lock_it' is FALSE, we are actually unlocking a previous lock.
679
 
  // 
680
 
  void LockOut(boolean_g lock_it);
681
 
   
682
 
protected:
683
 
  
684
 
  // initial window size, read after the window manager has had a
685
 
  // chance to move the window somewhere else.  If the window is still
686
 
  // there when CaptureState() is called, we don't need to update the
687
 
  // coords in the cookie file.
688
 
  // 
689
 
  int init_x, init_y, init_w, init_h;
690
 
};
691
 
 
692
 
extern Guix_MainWin * guix_win;
693
 
 
694
 
void WindowSmallDelay(void);
695
 
 
696
 
 
697
 
#endif /* __GLBSP_LOCAL_H__ */