home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / c / fli106c / winsel.cpp < prev    next >
C/C++ Source or Header  |  1992-03-11  |  2KB  |  83 lines

  1. //
  2. // The Fusion Library Interface for DOS
  3. // Version 1.06c
  4. // Copyright (C) 1990, 1991, 1992
  5. // Software Dimensions
  6. //
  7. // MenuControl --> MenuItems --> FusionWindow
  8. //
  9.  
  10. #include "fliwin.h"
  11.  
  12. #ifdef __BCPLUSPLUS__
  13. #pragma hdrstop
  14. #endif
  15.  
  16. #include <stdarg.h>
  17.  
  18. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  19. //
  20. // Selectable()
  21. //
  22. // Adds a list of selectables to a menu option
  23. //
  24. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  25.  
  26. void MenuManager::Selectable(int &Item ...)
  27. {
  28.   if (!NumberOfMenus)
  29.     return;
  30.  
  31.   if (!CurrentLevel)
  32.   {
  33.     _Options &Option=*(Menus[NumberOfMenus-1]->Option+
  34.       Menus[NumberOfMenus-1]->NumberOfOptions-1);
  35.  
  36.     Option.Selectable=&Item;
  37.  
  38.     va_list SelectableList;
  39.  
  40.     va_start(SelectableList,Item);
  41.     while (va_arg(SelectableList,char *)!=0)
  42.       Option.SelectCount++;
  43.     va_end(SelectableList);
  44.  
  45.     Option.Selectables=new char*[Option.SelectCount];
  46.  
  47.     int Count=0;
  48.     char *Pointer;
  49.     va_start(SelectableList,Item);
  50.     while ((Pointer=va_arg(SelectableList,char *))!=0)
  51.       Option.Selectables[Count++]=Pointer;
  52.     va_end(SelectableList);
  53.  
  54.     Menus[NumberOfMenus-1]->Selectables++;
  55.   }
  56.   else
  57.   {
  58.     _Options &Option=*(SubMenuTrack[CurrentLevel-1]->Option+
  59.       SubMenuTrack[CurrentLevel-1]->NumberOfOptions-1);
  60.  
  61.     Option.Selectable=&Item;
  62.  
  63.     va_list SelectableList;
  64.  
  65.     va_start(SelectableList,Item);
  66.     while (va_arg(SelectableList,char *)!=0)
  67.       Option.SelectCount++;
  68.     va_end(SelectableList);
  69.  
  70.     Option.Selectables=new char*[Option.SelectCount];
  71.  
  72.     int Count=0;
  73.     char *Pointer;
  74.     va_start(SelectableList,Item);
  75.     while ((Pointer=va_arg(SelectableList,char *))!=0)
  76.       Option.Selectables[Count++]=Pointer;
  77.     va_end(SelectableList);
  78.  
  79.     SubMenuTrack[CurrentLevel-1]->Selectables++;
  80.   }
  81. }
  82.  
  83.