home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / os20 / forceicon-1.2.lha / ForceIcon / Source / Interface.c < prev    next >
C/C++ Source or Header  |  1993-12-31  |  39KB  |  1,529 lines

  1. /*
  2. Auto:        smake ForceIcon
  3. */
  4.  
  5.  
  6.  
  7. /* $Revision Header built automatically *************** (do not edit) ************
  8. **
  9. ** © Copyright by GuntherSoft
  10. **
  11. ** File             : SnakeSYS:CPrgs/Utils/ForceIcon/Interface.c
  12. ** Created on       : Friday, 22.10.93 16:28:10
  13. ** Created by       : Kai Iske
  14. ** Current revision : V1.0
  15. **
  16. **
  17. ** Purpose
  18. ** -------
  19. **   - User-Interface for ForceIcon
  20. **
  21. ** Revision V1.0
  22. ** --------------
  23. ** created on Friday, 22.10.93 16:28:10  by  Kai Iske.   LogMessage :
  24. **     --- Initial release ---
  25. **
  26. *********************************************************************************/
  27.  
  28.  
  29. #define    MainWinLeft    80
  30. #define    MainWinTop    25
  31. #define    MainWinWidth    457
  32. #define    MainWinHeight    126
  33. #define    EditWinLeft    102
  34. #define    EditWinTop    52
  35. #define    EditWinWidth    433
  36. #define    EditWinHeight    102
  37. #define    ManWinLeft    112
  38. #define    ManWinTop    60
  39. #define    ManWinWidth    438
  40. #define    ManWinHeight    41
  41.  
  42.  
  43.  
  44.  
  45. /**********************************************************************/
  46. /*                        External structures                         */
  47. /**********************************************************************/
  48. extern struct List        VolumeList;
  49. extern struct SignalSemaphore    MySemaphore;
  50.  
  51.  
  52.  
  53. /**********************************************************************/
  54. /*                        Module`s structures                         */
  55. /**********************************************************************/
  56. struct    Window        *MainWinHandle    = NULL;        // Window handles
  57. struct    Window        *EditWinHandle    = NULL;
  58. struct    Window        *PosWinHandle    = NULL;
  59. struct    Window        *ManWinHandle    = NULL;
  60.  
  61.  
  62. static struct VisualInfo    *MainVisInfo    = NULL;
  63. static struct VisualInfo    *EditVisInfo    = NULL;
  64. static struct VisualInfo    *ManVisInfo    = NULL;
  65. static struct Gadget        *MainWinGList    = NULL;
  66. static struct Gadget        *EditWinGList    = NULL;
  67. static struct Gadget        *ManWinGList    = NULL;
  68. static struct Gadget        *MainWinGadgets[MAINWIN_CNT];
  69. static struct Gadget        *EditWinGadgets[EDITWIN_CNT];
  70. static struct Gadget        *ManWinGadgets[MANWIN_CNT];
  71. static struct _Object        *EditWinGet    = NULL;
  72. static struct TextAttr        MainWinTxtAttr,
  73.                 EditWinTxtAttr,
  74.                 ManWinTxtAttr;
  75. static char            MainWinFontName[40],
  76.                 EditWinFontName[40],
  77.                 ManWinFontName[40];
  78.  
  79. static char            MainTypeStr[40];
  80.  
  81. static struct List        VolList;
  82. static struct VolEntry        OrigEntry, *CloneEntry = NULL;
  83. static WORD            SelVolume, SelEdVolume, PosMode, ManualType;
  84. static LONG            SecsLeft, MinsLeft, SecsRight, MinsRight;
  85. static WORD            LastLeft, LastRight;
  86. static struct Requester        MainReq;
  87.  
  88.  
  89.  
  90.  
  91.  
  92. /**********************************************************************/
  93. /*                         Window definitions                         */
  94. /**********************************************************************/
  95. static UBYTE *EditPos1Labels[] = {
  96.     (UBYTE *)"Open position window",
  97.     (UBYTE *)"Close position window",
  98.     NULL };
  99.  
  100. static UBYTE *ManType2Labels[] = {
  101.     (UBYTE *)"Device",
  102.     (UBYTE *)"Volume",
  103.     NULL };
  104.  
  105. static UWORD MainWinGTypes[] = {
  106.     LISTVIEW_KIND,
  107.     LISTVIEW_KIND,
  108.     BUTTON_KIND,
  109.     BUTTON_KIND,
  110.     BUTTON_KIND,
  111.     BUTTON_KIND,
  112.     BUTTON_KIND,
  113.     BUTTON_KIND,
  114.     BUTTON_KIND,
  115.     BUTTON_KIND,
  116.     BUTTON_KIND,
  117.     BUTTON_KIND,
  118.     TEXT_KIND,
  119.     BUTTON_KIND
  120. };
  121.  
  122. static UWORD EditWinGTypes[] = {
  123.     CYCLE_KIND,
  124.     BUTTON_KIND,
  125.     BUTTON_KIND,
  126.     STRING_KIND,
  127.     STRING_KIND,
  128.     GENERIC_KIND,
  129.     CHECKBOX_KIND,
  130.     CYCLE_KIND,
  131.     CHECKBOX_KIND,
  132.     INTEGER_KIND,
  133.     INTEGER_KIND
  134. };
  135.  
  136. static UWORD ManWinGTypes[] = {
  137.     STRING_KIND,
  138.     BUTTON_KIND,
  139.     BUTTON_KIND,
  140.     CYCLE_KIND
  141. };
  142.  
  143. static struct NewGadget MainWinNGad[] = {
  144.     244, 17, 200, 56, (UBYTE *)"Ava_ilable Volumes/Devices", NULL, GD_MainVols, PLACETEXT_ABOVE|NG_HIGHLABEL, NULL, NULL,
  145.     13, 17, 200, 56, (UBYTE *)"Used _Volumes/Devices", NULL, GD_MainUseVols, PLACETEXT_ABOVE|NG_HIGHLABEL, NULL, NULL,
  146.     244, 69, 200, 12, (UBYTE *)"Add to _list", NULL, GD_MainAdd, PLACETEXT_IN, NULL, NULL,
  147.     13, 81, 100, 12, (UBYTE *)"_Edit entry...", NULL, GD_MainEdit, PLACETEXT_IN, NULL, NULL,
  148.     13, 93, 200, 12, (UBYTE *)"_Remove from list", NULL, GD_MainRemove, PLACETEXT_IN, NULL, NULL,
  149.     5, 112, 85, 12, (UBYTE *)"_Save", NULL, GD_MainSave, PLACETEXT_IN, NULL, NULL,
  150.     95, 112, 85, 12, (UBYTE *)"_Use", NULL, GD_MainUse, PLACETEXT_IN, NULL, NULL,
  151.     367, 112, 85, 12, (UBYTE *)"_Quit", NULL, GD_MainQuit, PLACETEXT_IN, NULL, NULL,
  152.     275, 112, 85, 12, (UBYTE *)"_Hide", NULL, GD_MainHide, PLACETEXT_IN, NULL, NULL,
  153.     244, 81, 200, 12, (UBYTE *)"Add _manually...", NULL, GD_MainManual, PLACETEXT_IN, NULL, NULL,
  154.     244, 93, 200, 12, (UBYTE *)"Resca_n list", NULL, GD_MainRescan, PLACETEXT_IN, NULL, NULL,
  155.     185, 112, 85, 12, (UBYTE *)"_About...", NULL, GD_MainAbout, PLACETEXT_IN, NULL, NULL,
  156.     13, 69, 200, 12, NULL, NULL, GD_MainType, 0, NULL, NULL,
  157.     113, 81, 100, 12, (UBYTE *)"_Copy...", NULL, GD_MainCopy, PLACETEXT_IN, NULL, NULL
  158. };
  159.  
  160. static struct NewGadget EditWinNGad[] = {
  161.     108, 51, 202, 12, (UBYTE *)"_Position", NULL, GD_EditPos, PLACETEXT_LEFT, NULL, NULL,
  162.     5, 88, 85, 12, (UBYTE *)"_Ok", NULL, GD_EditOk, PLACETEXT_IN, NULL, NULL,
  163.     343, 88, 85, 12, (UBYTE *)"_Cancel", NULL, GD_EditCancel, PLACETEXT_IN, NULL, NULL,
  164.     108, 6, 297, 14, (UBYTE *)"_Volume", NULL, GD_EditVol, PLACETEXT_LEFT, NULL, NULL,
  165.     108, 69, 181, 14, (UBYTE *)"Ico_n", NULL, GD_EditIcon, PLACETEXT_LEFT, NULL, NULL,
  166.     290, 69, 20, 14, NULL, NULL, GD_EditGet, 0, NULL, NULL,
  167.     318, 69, 26, 11, (UBYTE *)"_Use Icon", NULL, GD_EditUseIcon, PLACETEXT_RIGHT, NULL, NULL,
  168.     108, 21, 297, 12, (UBYTE *)"_Type", NULL, GD_EditType, PLACETEXT_LEFT, NULL, NULL,
  169.     318, 51, 26, 11, (UBYTE *)"_IconPos", NULL, GD_EditIconPos, PLACETEXT_RIGHT, NULL, NULL,
  170.     108, 36, 67, 14, (UBYTE *)"Current _X", NULL, GD_EditX, PLACETEXT_LEFT, NULL, NULL,
  171.     338, 36, 67, 14, (UBYTE *)"Current _Y", NULL, GD_EditY, PLACETEXT_LEFT, NULL, NULL
  172. };
  173.  
  174. static struct NewGadget ManWinNGad[] = {
  175.     82, 7, 346, 14, (UBYTE *)"_Entry", NULL, GD_ManVol, PLACETEXT_LEFT, NULL, NULL,
  176.     5, 27, 85, 12, (UBYTE *)"_Ok", NULL, GD_ManOk, PLACETEXT_IN, NULL, NULL,
  177.     349, 27, 85, 12, (UBYTE *)"_Cancel", NULL, GD_ManCancel, PLACETEXT_IN, NULL, NULL,
  178.     175, 27, 121, 12, (UBYTE *)"_Type", NULL, GD_ManType, PLACETEXT_LEFT, NULL, NULL
  179. };
  180.  
  181. static ULONG MainWinGTags[] = {
  182.     (GTLV_ShowSelected), NULL, (GT_Underscore), '_', (TAG_DONE),
  183.     (GTLV_ShowSelected), NULL, (GT_Underscore), '_', (TAG_DONE),
  184.     (GT_Underscore), '_', (GA_Disabled), TRUE, (TAG_DONE),
  185.     (GT_Underscore), '_', (GA_Disabled), TRUE, (TAG_DONE),
  186.     (GT_Underscore), '_', (GA_Disabled), TRUE, (TAG_DONE),
  187.     (GT_Underscore), '_', (TAG_DONE),
  188.     (GT_Underscore), '_', (TAG_DONE),
  189.     (GT_Underscore), '_', (TAG_DONE),
  190.     (GT_Underscore), '_', (TAG_DONE),
  191.     (GT_Underscore), '_', (TAG_DONE),
  192.     (GT_Underscore), '_', (TAG_DONE),
  193.     (GT_Underscore), '_', (TAG_DONE),
  194.     (GTTX_Border), TRUE, (TAG_DONE),
  195.     (GT_Underscore), '_', (GA_Disabled), TRUE, (TAG_DONE)
  196. };
  197.  
  198. static ULONG EditWinGTags[] = {
  199.     (GTCY_Labels), (ULONG)&EditPos1Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
  200.     (GT_Underscore), '_', (TAG_DONE),
  201.     (GT_Underscore), '_', (TAG_DONE),
  202.     (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 128, (GT_Underscore), '_', (TAG_DONE),
  203.     (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 256, (GT_Underscore), '_', (TAG_DONE),
  204.     (TAG_DONE),
  205.     (GT_Underscore), '_', (GTCB_Scaled), TRUE, (TAG_DONE),
  206.     (GTCY_Labels), (ULONG)&ManType2Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
  207.     (GT_Underscore), '_', (GTCB_Scaled), TRUE, (TAG_DONE),
  208.     (STRINGA_ExitHelp), TRUE, (GTIN_Number), 0, (GTIN_MaxChars), 4, (GT_Underscore), '_', (TAG_DONE),
  209.     (STRINGA_ExitHelp), TRUE, (GTIN_Number), 0, (GTIN_MaxChars), 4, (GT_Underscore), '_', (TAG_DONE)
  210. };
  211.  
  212. static ULONG ManWinGTags[] = {
  213.     (STRINGA_ExitHelp), TRUE, (GTST_MaxChars), 128, (GT_Underscore), '_', (TAG_DONE),
  214.     (GT_Underscore), '_', (TAG_DONE),
  215.     (GT_Underscore), '_', (TAG_DONE),
  216.     (GTCY_Labels), (ULONG)&ManType2Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE)
  217. };
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. /**********************************************************************/
  231. /*                       Handle the main window                       */
  232. /**********************************************************************/
  233. BOOL OpenMainWin(void)
  234. {
  235.         // Initialize volume list
  236.  
  237.     NewList(&VolList);
  238.  
  239.         // Get list of available volumes
  240.  
  241.     if(GetDevVolList(&VolList))
  242.     {
  243.             // Try to open main window
  244.  
  245.         if(OpenWin(MainWinLeft,
  246.             MainWinTo