home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / fm2000 / fmgui.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-04  |  3.0 KB  |  99 lines

  1. /*
  2.      Filemaster - Multitasking directory utility.
  3.      Copyright (C) 2000  Toni Wilen
  4.      
  5.      This program is free software; you can redistribute it and/or
  6.      modify it under the terms of the GNU General Public License
  7.      as published by the Free Software Foundation; either version 2
  8.      of the License, or (at your option) any later version.
  9.      
  10.      This program is distributed in the hope that it will be useful,
  11.      but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.      GNU General Public License for more details.
  14.      
  15.      You should have received a copy of the GNU General Public License
  16.      along with this program; if not, write to the Free Software
  17.      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18. */
  19.  
  20. #include <utility/tagitem.h>
  21.  
  22. #include <libraries/bgui.h>
  23. #include <proto/bgui.h>
  24. #include <libraries/bgui_macros.h>
  25.  
  26. #define GUIGROUPS 16
  27. #define GUISLOTS 64
  28.  
  29. struct GUISlot {
  30.     Object *obj;
  31.     void *data;
  32.     WORD type;
  33.     WORD id;
  34.     UBYTE shortcut[2];
  35. };
  36. struct GUIGroup {
  37.     WORD alignment;
  38.     WORD used;
  39.     struct GUISlot slots[GUISLOTS];
  40. };
  41. struct GUIBase {
  42.     Object *obj;
  43.     struct Window *win;
  44.     UBYTE *title;
  45.     WORD currentgroup;
  46.     struct Screen *screen;
  47.     struct GUISlot *lastslot;
  48.     struct GUIGroup *groups[GUIGROUPS];
  49. };
  50.  
  51. WORD reqinfowindow(UBYTE*,UBYTE*,UWORD,LONG,...);
  52.  
  53. struct GUISlot *getguislot(struct GUIBase*,Object*,WORD,WORD,void*);
  54.  
  55. struct GUIBase *getguibase(UBYTE*);
  56. void setguigroup(struct GUIBase*,WORD,WORD);
  57. void connectgroups(struct GUIBase*,WORD,WORD);
  58. void setconnectgroup(struct GUIBase*,WORD,WORD,WORD);
  59. void denaobject(struct GUIBase*,WORD,BOOL);
  60. LONG getobject(struct GUIBase*,WORD);
  61. void setobject(struct GUIBase*,WORD,LONG);
  62.  
  63. WORD quickreq(struct GUIBase*);
  64. BOOL initreq(struct GUIBase*);
  65. void freereq(struct GUIBase*);
  66. BOOL openreq(struct GUIBase*);
  67. void closereq(struct GUIBase*);
  68. BOOL openinitreq(struct GUIBase*);
  69. WORD reqmsghandler(struct GUIBase*);
  70. void sleepreq(struct GUIBase*);
  71. void wakereq(struct GUIBase*);
  72.  
  73. struct GUISlot *reqtoggle(struct GUIBase*,UBYTE*,WORD,UWORD,BOOL*);
  74. struct GUISlot *reqtogglemsg(struct GUIBase*,WORD,WORD,UWORD,BOOL*);
  75.  
  76. struct GUISlot *reqbuttonmsg(struct GUIBase*,WORD,WORD,UWORD);
  77. struct GUISlot *reqbutton(struct GUIBase*,UBYTE*,WORD,UWORD);
  78.  
  79. void buttonbarmsg(struct GUIBase*,LONG,...);
  80. void buttonbar(struct GUIBase*,void*,...);
  81. void startbuttonbar(struct GUIBase*);
  82.  
  83. struct GUISlot *reqinfo(struct GUIBase*,UBYTE*,WORD,UWORD);
  84. struct GUISlot *reqinfomsg(struct GUIBase*,WORD,WORD,UWORD);
  85.  
  86. struct GUISlot *reqstring(struct GUIBase*,WORD,UBYTE*,WORD);
  87. struct GUISlot *reqinteger(struct GUIBase*,WORD,LONG*,LONG,LONG);
  88.  
  89. struct GUISlot *reqcyclemsg(struct GUIBase*,WORD,WORD*,LONG,...);
  90. struct GUISlot *reqcycle(struct GUIBase*,WORD,WORD*,UBYTE*,...);
  91. struct GUISlot *reqcycle2msg(struct GUIBase*,WORD,WORD*);
  92.  
  93. struct GUISlot *reqpalette(struct GUIBase*,WORD,UBYTE*);
  94.  
  95. #define guiUC        0x0001
  96. #define guiCENTER    0x0002
  97. #define guiLEFT        0x0004
  98. #define guiRIGHT    0x0008
  99.