home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / news / 2531 / include / uguipro.h < prev   
C/C++ Source or Header  |  1994-06-12  |  26KB  |  623 lines

  1. /************************************************************************\
  2. * File : uguipro.h                                                       *
  3. **************************************************************************
  4. *                         ** ULTIMAN'S G.U.I. **                         *
  5. *                         **********************                         *
  6. *                             -- V 0.99ß --                              *
  7. *                                                                        *
  8. * Copyright (c) 1994 Jérôme Stolfo (UltimaN)                             *
  9. *                                                                        *
  10. *  -> Français <-                    | -> English <-                     *
  11. * Contenu : Ce fichier contient  les | Contents : This file contents the *
  12. *   définitions des classes de UGUI. |   defines for the classes of UGUI *
  13. *   Concernant les menus déroulants. |   for the menus. Must be placed   *
  14. *   Il doit être placé en #include   |   as #include at the begginning of*
  15. *   à chaque fic. utilisant les menus|   each file using UGUI menus.     *
  16. *                                    |                                   *
  17. * ......ENREGISTREMENT.......        | ........REGISTERING........       *
  18. * Veuillez SVP lire le fichier       | Please read the file READ.ME that *
  19. * LISEZ.MOI qui contient les infor-  | contents legal informations about *
  20. * mations légales sur ce logiciel,   | that soft, as well as how to      *
  21. * ainsi que les modalités d'enregis- | register.                         *
  22. * trement.                           |                                   *
  23. *                                    |                                   *
  24. * ----------IMPORTANT----------------|-----------IMPORTANT-------------- *
  25. * Ce fichier, ainsi que les autres   | This file, like the others ones   *
  26. * fichiers source fourni avec UGUI,  | furnished with UGUI, is only gi-  *
  27. * est seulement fourni dans un but   | ven to help to debugging your     *
  28. * de contrôle, d'aide au débuguage,  | programs, or for curiosities.     *
  29. * de curiosité. Il ne doit pas être  | He must not be modified, copied   *
  30. * modifié, copié séparément des au-  | separately of the other files,    *
  31. * tres fichiers, vendu, etc.         | or sold  , etc.                   *
  32. *                                    |                                   *
  33. * Les seules informations de ce fi-  | The only things you can modify,   *
  34. * chier que vous pouvez modifier     | are : the #define  directives,    *
  35. * sont : les directives #define ,    | and the consts.                   *
  36. * et les constantes.                 |                                   *
  37. \************************************************************************/
  38.  
  39. #ifndef _UGUIPRO_H_
  40. #define _UGUIPRO_H_
  41.  
  42. #include <ugui.h>
  43.  
  44. /* return codes of sub menus */
  45. const int UGUIMenuLeft = -1;
  46. const int UGUIMenuRight = -2;
  47. const int UGUIMenuEscape = 0;
  48.  
  49. /* default width and height of sub menus */
  50. const int UGUISubMenuWidth = 184;
  51. const int UGUISubMenuHeight = 20;
  52.  
  53. /***************************************************************************/
  54. /* >> UGUIGenericMenu                                                      */
  55. /* Generic menu                                                            */
  56. /***************************************************************************/
  57. class UGUIGenericSubMenu;
  58. class UGUIBaseMenuItem;
  59.  
  60. class UGUIGenericMenu : protected UGUIGenericObjectList
  61. {
  62.     public :
  63.         UGUIGenericMenu ( int, int, int, int, int =1, int =128,
  64.                                             UGUIMenuSettings const & );
  65.                                             /* x, y, length, nb_of_menus, width_of_menu, settings*/
  66.         UGUIGenericMenu ( UGUIRectPosition const &, int =1, int =128,
  67.                                             UGUIMenuSettings const & );
  68.         UGUIGenericMenu ( UGUIGenericMenu const & );
  69.         ~UGUIGenericMenu ();
  70.  
  71.         void reDraw();              /* reDraws */
  72.         int event ( UGUIEventStruct const & );
  73.         void resetLastResult();     /* sets last result to 0 */
  74.         int getLastResult();
  75.         void setString ( const char *, int ); /* sets titles of menus */
  76.         void getString ( char *, int );
  77.         UGUIBaseObject *getDrawingObject ( int ); /* returns buttons of title*/
  78.         UGUIGenericSubMenu *getSubMenu ( int );   /* returns submenu */
  79.         void setSubMenu ( UGUIGenericSubMenu *, int );/*sets a submenu */
  80.         void setSubMenu ( int, const char *, UGUIGenericSubMenu * );
  81.                                                                         /* no, title, submenu */
  82.         int addItem ( int, UGUIBaseMenuItem * );
  83.  
  84.         void setSelected ( int );
  85.         int getSelected ( );
  86.         int getNumber ();
  87.         int getWidth ();
  88.         UGUIRectPosition getPosition ();
  89.         void move ( UGUIRectPosition const & );
  90.         void setSettings ( UGUIMenuSettings const & =UGUIgeneralMenuSettings );
  91.         UGUIMenuSettings getSettings ();
  92.  
  93.     protected :
  94.         int selected,
  95.                 number,
  96.                 width;
  97.         UGUIRectPosition position;
  98.         UGUIMenuSettings settings;
  99.         UGUIGenericObjectList drawing;
  100.         virtual void addObjects () =0;
  101. };
  102.  
  103. /***************************************************************************\
  104. * >> UGUIMenuGraphic                                                        *
  105. * Menuin graphic mode                                                       *
  106. *****************************************************************************
  107. * Constructor :                                                             *
  108. *   int, int,             coordonnées                                       *
  109. *   int, int,             width and height                                  *
  110. *   *or*                                                                    *
  111. *   UGUIRectPosition      position                                          *
  112. *   int,                  sub menus number                                  *
  113. *   int,                  width of each title                               *
  114. *   UGUIMenuSettings      settings                                          *
  115. \***************************************************************************/
  116. class UGUIMenuGraphic : public UGUIGenericMenu
  117. {
  118.     public :
  119.         UGUIMenuGraphic ( int, int, int, int, int =1, int =128,
  120.                                             UGUIMenuSettings const & =UGUIgeneralMenuSettings );
  121.                                             /* x, y, length, nb_of_menus, width_of_menu, settings*/
  122.         UGUIMenuGraphic ( UGUIRectPosition const &, int =1, int =128,
  123.                                             UGUIMenuSettings const & =UGUIgeneralMenuSettings );
  124.         UGUIMenuGraphic ( UGUIMenuGraphic const & );
  125.         ~UGUIMenuGraphic ();
  126.  
  127.     protected :
  128.         void addObjects ();
  129. };
  130.  
  131. /***************************************************************************/
  132. /* >> UGUIGenericSubMenu                                                   */
  133. /* Generic submenu                                                         */
  134. /***************************************************************************/
  135. class UGUIGenericSubMenu : protected UGUIGenericObjectList
  136. {
  137.     public :
  138.         UGUIGenericSubMenu ( int =10, int =UGUISubMenuWidth,
  139.                                 int =UGUISubMenuHeight, UGUISubMenuSettings const & );
  140.         UGUIGenericSubMenu ( UGUIRectPosition const &, int =10,
  141.                                             int =UGUISubMenuHeight,
  142.                                             UGUISubMenuSettings const & );
  143.         UGUIGenericSubMenu ( UGUIGenericSubMenu const & );
  144.         ~UGUIGenericSubMenu ();
  145.  
  146.         void reDraw();
  147.         int event ( UGUIEventStruct const & );
  148.         void resetLastResult();
  149.         int getLastResult();
  150.         UGUIRectPosition getPosition ();
  151.         void move ( UGUIRectPosition const & );
  152.         void move ( int, int );
  153.         int getNumber (); /* returns item number */
  154.         int getSelected ();
  155.         void setSelected(int);
  156.         UGUISubMenuSettings getSettings ();
  157.         void setSettings ( UGUISubMenuSettings const & );
  158.         UGUIBaseObject *getWindowObject ( int ); /* returns frames,etc */
  159.         UGUIBaseObject *getItem ( int );         /* returns an item */
  160.         void setItem ( UGUIBaseMenuItem *, int );  /* sets an item */
  161.         int addItem ( UGUIBaseMenuItem * );
  162.  
  163.         virtual void drawBack() =0;              /* saves background */
  164.         virtual void saveBack() =0;              /* draws background*/
  165.  
  166.     protected :
  167.         UGUIRectPosition position;
  168.         int height;
  169.         UGUISubMenuSettings settings;
  170.         virtual void addObjects ( )=0;
  171.         int lineSizeMem;
  172.         char **backPic;
  173.     int nbSaves;
  174.         char *title;
  175.         byte alreadyDrawed;
  176.         int selected,
  177.                 number;
  178.         UGUIGenericObjectList drawing;
  179. };
  180.  
  181. /***************************************************************************\
  182. * >> UGUISubMenuGraphic                                                     *
  183. * SubMenu in graphic mode                                                   *
  184. *****************************************************************************
  185. * Constructor :                                                             *
  186. *   nothing                                                                 *
  187. *   *or*                                                                    *
  188. *   UGUIRectPosition  position                                              *
  189. *   int,              item numbers                                          *
  190. *   int, int,         width and height                                      *
  191. *   UGUISubMenuSettings settings                                            *
  192. \***************************************************************************/
  193. class UGUISubMenuGraphic : public UGUIGenericSubMenu
  194. {
  195.     public :
  196.                                             /* x, y, length, nb_of_menus, width_of_menu, settings*/
  197.         UGUISubMenuGraphic ( int =10, int =UGUISubMenuWidth,
  198.                                 int =UGUISubMenuHeight, UGUISubMenuSettings const &
  199.                                                         =UGUIgeneralMenuSettings.subMenu);
  200.         UGUISubMenuGraphic ( UGUIRectPosition const &, int =10,
  201.                                                  int =UGUISubMenuHeight,
  202.                                                  UGUISubMenuSettings const &
  203.                                                     =UGUIgeneralMenuSettings.subMenu );
  204.         UGUISubMenuGraphic ( UGUISubMenuGraphic const & );
  205.         ~UGUISubMenuGraphic ();
  206.         void move ( UGUIRectPosition const & );
  207.  
  208.         void drawBack();
  209.         void saveBack();
  210.  
  211.     protected :
  212.         void addObjects ( );
  213. };
  214.  
  215. /***************************************************************************/
  216. /****               ITEMS                 **********************************/
  217. /***************************************************************************/
  218.  
  219.  
  220. /***************************************************************************/
  221. /* >> UGUIBaseMenuItem                                                     */
  222. /* Base class for all  items                                               */
  223. /***************************************************************************/
  224. class UGUIBaseMenuItem : public UGUIBaseObject
  225. {
  226.     public :
  227.         virtual void setSettings ( UGUISubMenuSettings const &
  228.                                                                     =UGUIgeneralMenuSettings.subMenu ) =0;
  229.         virtual UGUISubMenuSettings getSettings () =0;
  230.         void move ( UGUIRectPosition const & );
  231.         UGUIRectPosition getPosition ();
  232.     protected :
  233.         UGUIRectPosition position;
  234. };
  235.  
  236. /***************************************************************************/
  237. /* >> UGUIMenuItemText                                                     */
  238. /* Item : text                                                             */
  239. /***************************************************************************/
  240. class UGUIMenuItemText : public UGUIBaseMenuItem
  241. {
  242.     public :
  243.         UGUIMenuItemText ( int, char * ="" );
  244.         /* return, text */
  245.         ~UGUIMenuItemText ();
  246.         void reDraw() =0;
  247.         int event ( UGUIEventStruct const & );
  248.         int getReturnValue ();
  249.         void setReturnValue ( int );
  250.         void setText ( char * ="" );/* sets text */
  251.         void getText ( char * );
  252.         void setSettings ( UGUISubMenuSettings const &
  253.                                                                     =UGUIgeneralMenuSettings.subMenu );
  254.         UGUISubMenuSettings getSettings ();
  255.  
  256.     protected :
  257.         int returnValue;
  258.         char *text;
  259.         UGUITextSettings settings;
  260. };
  261.  
  262. /***************************************************************************\
  263. * >> UGUIMenuItemTextGraphic                                                *
  264. * Item : text (for graphic modes )                                          *
  265. *****************************************************************************
  266. * Constructor :                                                             *
  267. *   int,              return value                                          *
  268. *   char *            text of item                                          *
  269. \***************************************************************************/
  270. class UGUIMenuItemTextGraphic : public UGUIMenuItemText
  271. {
  272.     public :
  273.         UGUIMenuItemTextGraphic ( int, char * ="" );
  274.         void reDraw();
  275. };
  276.  
  277. /***************************************************************************/
  278. /* >> UGUIMenuItemSeparator                                                */
  279. /* Item : text                                                             */
  280. /***************************************************************************/
  281. class UGUIMenuItemSeparator : public UGUIBaseMenuItem
  282. {
  283.     public :
  284.         void setSettings ( UGUISubMenuSettings const &
  285.                                                                     =UGUIgeneralMenuSettings.subMenu );
  286.         UGUISubMenuSettings getSettings ();
  287.         UGUIMenuItemSeparator ();
  288.         void reDraw() =0;
  289.         int event ( UGUIEventStruct const & );
  290.         int getReturnValue ();
  291.         void setReturnValue ( int );
  292.  
  293.     protected :
  294.         UGUILineSettings settings;
  295.         int returnValue; /* normally 0 */
  296. };
  297.  
  298. /***************************************************************************\
  299. * >> UGUIMenuItemSeparatorGraphic                                           *
  300. * Item : separator (for graphics modes )                                    *
  301. *****************************************************************************
  302. * Constructor :                                                             *
  303. *   *no parameters*                                                         *
  304. \***************************************************************************/
  305. class UGUIMenuItemSeparatorGraphic : public UGUIMenuItemSeparator
  306. {
  307.     public :
  308.         UGUIMenuItemSeparatorGraphic ( );
  309.         void reDraw();
  310. };
  311.  
  312. /***************************************************************************/
  313. /* >> UGUIMenuItemSubMenu                                                  */
  314. /* Item : submenu in menus                                                 */
  315. /***************************************************************************/
  316. class UGUIMenuItemSubMenu : public UGUIBaseMenuItem
  317. {
  318.     public :
  319.         void setSettings ( UGUISubMenuSettings const &
  320.                                                                     =UGUIgeneralMenuSettings.subMenu );
  321.         UGUISubMenuSettings getSettings ();
  322.         UGUIMenuItemSubMenu ( char * ="", int=10, int =UGUISubMenuWidth,
  323.                                                     int=UGUISubMenuHeight);
  324.                                                     /* text, number of item, wid, hei */
  325.         ~UGUIMenuItemSubMenu ();
  326.         void reDraw() =0;
  327.         int event ( UGUIEventStruct const & );
  328.         UGUIGenericSubMenu *getSubMenu (); /* returns sub-sub menu */
  329.         void setSubMenu ( UGUIGenericSubMenu * );/* sets sub menu */
  330.         void setText ( char * ="" );             /* sets text */
  331.         void getText ( char * );
  332.         void move ( UGUIRectPosition const & );
  333.         void setPosition();
  334.         void getPosition(int &, int &);
  335.         int addItem ( UGUIBaseMenuItem * );
  336.  
  337.     protected :
  338.         char *text;
  339.         UGUISubMenuSettings settings;
  340.         UGUIGenericSubMenu *subMenu;
  341.         int number, width, height;
  342.         UGUIRectPosition position;
  343. };
  344.  
  345. /***************************************************************************\
  346. * >> UGUIMenuItemSubMenuGraphic                                             *
  347. * Item : sub menu in menus                                                  *
  348. *****************************************************************************
  349. * Constructor :                                                             *
  350. *   char *                text of item                                      *
  351. *   int                   number of items in sub menu                       *
  352. *   int, int,             width and height of sub menu                      *
  353. \***************************************************************************/
  354. class UGUIMenuItemSubMenuGraphic : public UGUIMenuItemSubMenu
  355. {
  356.     public :
  357.         UGUIMenuItemSubMenuGraphic ( char * ="", int =10, int=UGUISubMenuWidth,
  358.                          int =UGUISubMenuHeight);
  359.         void move ( UGUIRectPosition const & );
  360.         void reDraw();
  361. };
  362.  
  363.  
  364. /***************************************************************************\
  365. *  IMPLEMENTATION OF INLINE FUNCTIONS                                       *
  366. *                                                                           *
  367. *  --> W A R N I N G : DO NOT MODIFY !                                      *
  368. \***************************************************************************/
  369.  
  370. /***************************************************************************/
  371. /* >> UGUIGenericMenu                                                      */
  372. /* Generic menu                                                            */
  373. /***************************************************************************/
  374.  
  375. inline UGUIGenericMenu::~UGUIGenericMenu () {}
  376.  
  377. inline void UGUIGenericMenu::reDraw()
  378. { drawing.reDraw();
  379. }
  380.  
  381. inline void UGUIGenericMenu::resetLastResult()
  382. { lastResult = UGUI_RNOTHING; }
  383.  
  384. inline int UGUIGenericMenu::getLastResult()
  385. { return lastResult; }
  386.  
  387. inline void UGUIGenericMenu::setString ( const char *str, int no )
  388. { ((UGUITextButton*)drawing.getObject(no))->setText ( str ); }
  389.  
  390. inline void UGUIGenericMenu::getString ( char *ptr, int no )
  391. { ((UGUITextButton*)drawing.getObject(no))->getText( ptr ); }
  392.  
  393. inline UGUIBaseObject *UGUIGenericMenu::getDrawingObject ( int  no )
  394. { return drawing.getObject(no); }
  395.  
  396. inline UGUIGenericSubMenu *UGUIGenericMenu::getSubMenu ( int  no )
  397. { return (UGUIGenericSubMenu*)objects[no]; }
  398.  
  399. inline void UGUIGenericMenu::setSubMenu ( UGUIGenericSubMenu *ob, int no )
  400. { set ( (UGUIBaseObject*)ob, no );
  401. if (objects[no])
  402.     ((UGUIGenericSubMenu*)objects[no])->
  403.                                     move ( position.left+no*width, position.bottom+1 );
  404. }
  405.  
  406. inline void UGUIGenericMenu::setSubMenu ( int no, const char *title,
  407.                                             UGUIGenericSubMenu *sm )
  408. { setString ( title, no );
  409.     setSubMenu ( sm, no );
  410. }
  411.  
  412. inline int UGUIGenericMenu::addItem ( int no, UGUIBaseMenuItem *it )
  413. { if (objects[no])
  414.         return getSubMenu(no)->addItem ( it );
  415.   return -1;
  416. }
  417.  
  418. inline void UGUIGenericMenu::setSelected ( int x )
  419. { selected = x; }
  420.  
  421. inline int UGUIGenericMenu::getSelected ( )
  422. { return selected; }
  423.  
  424. inline int UGUIGenericMenu::getNumber ()
  425. { return number; }
  426.  
  427. inline int UGUIGenericMenu::getWidth ()
  428. { return width; }
  429.  
  430. inline UGUIRectPosition UGUIGenericMenu::getPosition ()
  431. { return position; }
  432.  
  433. /***************************************************************************/
  434. /* >> UGUIMenuGraphic                                                      */
  435. /* Menuin graphic mode                                                     */
  436. /***************************************************************************/
  437. inline UGUIMenuGraphic::UGUIMenuGraphic ( int x, int y, int length, int hei,
  438.                         int nb, int width, UGUIMenuSettings const &set )
  439.                         : UGUIGenericMenu ( x, y, length, hei, nb, width, set )
  440. { this->addObjects();
  441. }
  442.  
  443. inline UGUIMenuGraphic::UGUIMenuGraphic ( UGUIRectPosition const &pos, int nb,
  444.                         int width, UGUIMenuSettings const &set )
  445.                         : UGUIGenericMenu ( pos, nb, width, set )
  446. { this->addObjects();
  447. }
  448.  
  449. inline UGUIMenuGraphic::UGUIMenuGraphic ( UGUIMenuGraphic const &ob )
  450.                         : UGUIGenericMenu ( ob )
  451. { this->addObjects();
  452. }
  453.  
  454. inline UGUIMenuGraphic::~UGUIMenuGraphic()
  455. {}
  456.  
  457. /***************************************************************************/
  458. /* >> UGUIGenericSubMenu                                                   */
  459. /* Generic submenu                                                         */
  460. /***************************************************************************/
  461. inline UGUIGenericSubMenu::~UGUIGenericSubMenu () {}
  462.  
  463.  
  464. inline void UGUIGenericSubMenu::resetLastResult()
  465. { lastResult = UGUI_RNOTHING; }
  466.  
  467. inline int UGUIGenericSubMenu::getLastResult()
  468. { return lastResult; }
  469.  
  470. inline UGUIRectPosition UGUIGenericSubMenu::getPosition ()
  471. { return position; }
  472.  
  473. inline int UGUIGenericSubMenu::getNumber ()
  474. { return number; }
  475.  
  476. inline int UGUIGenericSubMenu::getSelected ()
  477. { return selected; }
  478.  
  479. inline void UGUIGenericSubMenu::setSelected (int s)
  480. { selected = s; }
  481.  
  482. inline UGUISubMenuSettings UGUIGenericSubMenu::getSettings ()
  483. { return settings; }
  484.  
  485. inline UGUIBaseObject *UGUIGenericSubMenu::getWindowObject ( int x )
  486. { return drawing.getObject(x); }
  487.  
  488. inline UGUIBaseObject *UGUIGenericSubMenu::getItem ( int x)
  489. { return objects[x]; }
  490.  
  491. /***************************************************************************/
  492. /* >> UGUISubMenuGraphic                                                   */
  493. /* SubMenu in graphic mode                                                 */
  494. /***************************************************************************/
  495. inline UGUISubMenuGraphic::UGUISubMenuGraphic ( int num, int wid, int hei,
  496.                                 UGUISubMenuSettings const &set )
  497.                                 : UGUIGenericSubMenu ( num, wid, hei, set )
  498. { this->addObjects();
  499. }
  500.  
  501. inline UGUISubMenuGraphic::UGUISubMenuGraphic ( UGUIRectPosition const &pos,
  502.                                                  int num, int hei,
  503.                                                  UGUISubMenuSettings const &set )
  504.                                                  : UGUIGenericSubMenu ( pos, num, hei,  set )
  505. { this->addObjects();
  506. }
  507.  
  508. inline UGUISubMenuGraphic::UGUISubMenuGraphic (
  509.                                                     UGUISubMenuGraphic const &ob )
  510.                                                 : UGUIGenericSubMenu ( ob ) {}
  511.  
  512. /***************************************************************************/
  513. /* >> UGUIBaseMenuItem                                                     */
  514. /* Base class for menu items                                               */
  515. /***************************************************************************/
  516. inline void UGUIBaseMenuItem::move ( UGUIRectPosition const &pos )
  517. { position = pos; }
  518.  
  519. inline UGUIRectPosition UGUIBaseMenuItem::getPosition ()
  520. { return position; }
  521.  
  522. /***************************************************************************/
  523. /* >> UGUIMenuItemText                                                     */
  524. /* Item : text                                                             */
  525. /***************************************************************************/
  526. inline UGUIMenuItemText::~UGUIMenuItemText ()
  527. { if (text) delete text; }
  528.  
  529. inline int UGUIMenuItemText::event ( UGUIEventStruct const &ev )
  530. { lastResult = returnValue; return lastResult; }
  531.  
  532. inline int UGUIMenuItemText::getReturnValue ()
  533. { return returnValue; }
  534.  
  535. inline void UGUIMenuItemText::setReturnValue ( int val )
  536. { returnValue = val; }
  537.  
  538. inline void UGUIMenuItemText::getText( char *ptr )
  539. { strcpy ( ptr, text );
  540. }
  541.  
  542. /***************************************************************************/
  543. /* >> UGUIMenuItemTextGraphic                                              */
  544. /* Item : text (for graphic modes )                                        */
  545. /***************************************************************************/
  546. /***************************************************************************/
  547. /* >> UGUIMenuItemSeparator                                                */
  548. /* Item : text                                                             */
  549. /***************************************************************************/
  550. inline UGUIMenuItemSeparator::UGUIMenuItemSeparator () {}
  551.  
  552. inline int UGUIMenuItemSeparator::event (
  553.                                                                                 UGUIEventStruct const &ev )
  554. { lastResult = 0;
  555.     return lastResult; }
  556.  
  557. inline int UGUIMenuItemSeparator::getReturnValue ()
  558. { return returnValue; }
  559.  
  560. inline void UGUIMenuItemSeparator::setReturnValue ( int val )
  561. { returnValue = val; }
  562.  
  563. inline void UGUIMenuItemSeparator::setSettings (
  564.                                                                                 UGUISubMenuSettings const &set )
  565. { settings = set.separ;
  566. }
  567.  
  568. /***************************************************************************/
  569. /* >> UGUIMenuItemSeparatorGraphic                                         */
  570. /* Item : separator (for graphics modes )                                  */
  571. /***************************************************************************/
  572. inline UGUIMenuItemSeparatorGraphic::UGUIMenuItemSeparatorGraphic ( )
  573.                                         : UGUIMenuItemSeparator() {}
  574.  
  575. /***************************************************************************/
  576. /* >> UGUIMenuItemSubMenu                                                  */
  577. /* Item : submenu in menus                                                 */
  578. /***************************************************************************/
  579. inline void UGUIMenuItemSubMenu::getText( char *ptr )
  580. { strcpy ( ptr, text );
  581. }
  582.  
  583. inline void UGUIMenuItemSubMenu::setSettings (
  584.                                                                                         UGUISubMenuSettings const &set )
  585. { settings = set; }
  586.  
  587. inline UGUISubMenuSettings UGUIMenuItemSubMenu::getSettings ()
  588. { return settings; }
  589.  
  590. inline UGUIMenuItemSubMenu::~UGUIMenuItemSubMenu ()
  591. { if (text) delete text;
  592.     if (subMenu) delete subMenu;
  593. }
  594.  
  595. inline UGUIGenericSubMenu *UGUIMenuItemSubMenu::getSubMenu ()
  596. { return subMenu; }
  597.  
  598. inline void UGUIMenuItemSubMenu::setSubMenu ( UGUIGenericSubMenu *sub )
  599. { if (subMenu) delete subMenu;
  600.     if (sub)
  601.         subMenu=sub;
  602. }
  603.  
  604. inline void UGUIMenuItemSubMenu::move ( UGUIRectPosition const &pos )
  605. { position = pos;
  606. }
  607.  
  608. inline int UGUIMenuItemSubMenu::addItem ( UGUIBaseMenuItem *it )
  609. { return getSubMenu()->addItem ( it );
  610. }
  611.  
  612.  
  613. /***************************************************************************/
  614. /* >> UGUIMenuItemSubMenuGraphic                                           */
  615. /* Item : sub menu in menus                                                */
  616. /***************************************************************************/
  617. inline UGUIMenuItemSubMenuGraphic::UGUIMenuItemSubMenuGraphic ( char *txt,
  618.                                     int nb, int wid, int hei )
  619.                                     : UGUIMenuItemSubMenu ( txt, nb, wid, hei ) {}
  620.  
  621.  
  622. #endif
  623.