home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / new / gfx / edit / tsmorph / src / controlwindow.c < prev    next >
C/C++ Source or Header  |  1994-02-23  |  20KB  |  641 lines

  1. // TSMorph - Amiga Morphing program
  2. // Copyright (C) © 1993  Topicsave Limited
  3.  
  4. // This program is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation; either version 2 of the License, or
  7. // any later version.
  8.  
  9. // This program is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. // GNU General Public License for more details.
  13.  
  14. // You should have received a copy of the GNU General Public License
  15. // along with this program; if not, write to the Free Software
  16. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18. // mpaddock@cix.compulink.co.uk
  19.  
  20. // Include precompiled headers if not already included
  21. #ifndef TSMORPH_H
  22. #include "TSMorph.h"
  23. #endif
  24.  
  25. /* Gadgets in the control window */
  26. extern struct Gadget OneGadget = {
  27.     &TwoGadget,
  28.     0,0,
  29.     IMAGE_WIDTH,IMAGE_HEIGHT,
  30.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  31.     GACT_IMMEDIATE,
  32.     GTYP_BOOLGADGET,
  33.     &One_im,
  34.     &One_imx,
  35.     NULL,
  36.     0,
  37.     NULL,
  38.     ONEGADGET,
  39.     NULL
  40. };
  41. extern struct Gadget TwoGadget = {
  42.     &RelGadget,
  43.     0,0,
  44.     IMAGE_WIDTH,IMAGE_HEIGHT,
  45.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  46.     GACT_IMMEDIATE,
  47.     GTYP_BOOLGADGET,
  48.     &Two_im,
  49.     &Two_imx,
  50.     NULL,
  51.     0,
  52.     NULL,
  53.     TWOGADGET,
  54.     NULL
  55. };
  56. extern struct Gadget RelGadget = {
  57.     &MyAddGadget,
  58.     0,0,
  59.     IMAGE_WIDTH,IMAGE_HEIGHT,
  60.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  61.     GACT_IMMEDIATE,
  62.     GTYP_BOOLGADGET,
  63.     &Rel_im,
  64.     &Rel_imx,
  65.     NULL,
  66.     0,
  67.     NULL,
  68.     RELGADGET,
  69.     NULL
  70. };
  71. extern struct Gadget MyAddGadget = {    // Note not AddGadget as this is a function!
  72.     &DelGadget,
  73.     0,0,
  74.     IMAGE_WIDTH,IMAGE_HEIGHT,
  75.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  76.     GACT_IMMEDIATE,
  77.     GTYP_BOOLGADGET,
  78.     &Add_im,
  79.     &Add_imx,
  80.     NULL,
  81.     0,
  82.     NULL,
  83.     ADDGADGET,
  84.     NULL
  85. };
  86. extern struct Gadget DelGadget = {
  87.     &LinkGadget,
  88.     0,0,
  89.     IMAGE_WIDTH,IMAGE_HEIGHT,
  90.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  91.     GACT_IMMEDIATE,
  92.     GTYP_BOOLGADGET,
  93.     &Del_im,
  94.     &Del_imx,
  95.     NULL,
  96.     0,
  97.     NULL,
  98.     DELGADGET,
  99.     NULL
  100. };
  101. extern struct Gadget LinkGadget = {
  102.     &UnlinkGadget,
  103.     0,0,
  104.     IMAGE_WIDTH,IMAGE_HEIGHT,
  105.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  106.     GACT_IMMEDIATE,
  107.     GTYP_BOOLGADGET,
  108.     &Link_im,
  109.     &Link_imx,
  110.     NULL,
  111.     0,
  112.     NULL,
  113.     LINKGADGET,
  114.     NULL
  115. };
  116. extern struct Gadget UnlinkGadget = {
  117.     &NoneGadget,
  118.     0,0,
  119.     IMAGE_WIDTH,IMAGE_HEIGHT,
  120.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  121.     GACT_IMMEDIATE,
  122.     GTYP_BOOLGADGET,
  123.     &Unlink_im,
  124.     &Unlink_imx,
  125.     NULL,
  126.     0,
  127.     NULL,
  128.     UNLINKGADGET,
  129.     NULL
  130. };
  131. extern struct Gadget NoneGadget = {
  132.     &stGadget,
  133.     0,0,
  134.     IMAGE_WIDTH,IMAGE_HEIGHT,
  135.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE|GFLG_SELECTED,
  136.     GACT_IMMEDIATE,
  137.     GTYP_BOOLGADGET,
  138.     &None_im,
  139.     &None_imx,
  140.     NULL,
  141.     0,
  142.     NULL,
  143.     NONEGADGET,
  144.     NULL
  145. };
  146. extern struct Gadget stGadget = {
  147.     &prevGadget,
  148.     0,0,
  149.     AIMAGE,AIMAGE,
  150.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  151.     GACT_RELVERIFY,
  152.     GTYP_BOOLGADGET,
  153.     &st_im,
  154.     &st_imx,
  155.     NULL,
  156.     0,
  157.     NULL,
  158.     STGADGET,
  159.     NULL
  160. };
  161. extern struct Gadget prevGadget = {
  162.     &gotoGadget,
  163.     0,0,
  164.     AIMAGE,AIMAGE,
  165.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  166.     GACT_RELVERIFY,
  167.     GTYP_BOOLGADGET,
  168.     &prev_im,
  169.     &prev_imx,
  170.     NULL,
  171.     0,
  172.     NULL,
  173.     PREVGADGET,
  174.     NULL
  175. };
  176. extern struct Gadget gotoGadget = {
  177.     &nextGadget,
  178.     0,0,
  179.     AIMAGE+1,AIMAGE,
  180.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  181.     GACT_RELVERIFY,
  182.     GTYP_BOOLGADGET,
  183.     &goto_im,
  184.     &goto_imx,
  185.     NULL,
  186.     0,
  187.     NULL,
  188.     GOTOGADGET,
  189.     NULL
  190. };
  191. extern struct Gadget nextGadget = {
  192.     &lastGadget,
  193.     0,0,
  194.     AIMAGE,AIMAGE,
  195.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  196.     GACT_RELVERIFY,
  197.     GTYP_BOOLGADGET,
  198.     &next_im,
  199.     &next_imx,
  200.     NULL,
  201.     0,
  202.     NULL,
  203.     NEXTGADGET,
  204.     NULL
  205. };
  206. extern struct Gadget lastGadget = {
  207.     NULL,
  208.     0,0,
  209.     AIMAGE,AIMAGE,
  210.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  211.     GACT_RELVERIFY,
  212.     GTYP_BOOLGADGET,
  213.     &last_im,
  214.     &last_imx,
  215.     NULL,
  216.     0,
  217.     NULL,
  218.     LASTGADGET,
  219.     NULL
  220. };
  221.  
  222. /* Menu for the Control Window - comments on the right are the array index */
  223. extern struct NewMenu MyNewMenu[] = {    // There must be an easier way!
  224.     { NM_TITLE, NULL,NULL,0,0,NULL },            // 0
  225.         { NM_ITEM,NULL,NULL,0,0,0 },            // 1
  226.         { NM_ITEM,NULL,NULL,0,0,0 },    // 2
  227.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 3
  228.        { NM_ITEM,NULL,NULL,0,0,0},                    // 4
  229.        { NM_ITEM,NULL,NULL,0,0,0},            // 5
  230.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 6
  231.         { NM_ITEM,NULL,NULL,0,0,0 },            // 7
  232.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 8
  233.         { NM_ITEM,NULL,NULL,0,0,0 },        // 9
  234.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 10
  235.         { NM_ITEM,NULL,NULL,0,0,0 },                    // 11
  236.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 12
  237.         { NM_ITEM,NULL,NULL,0,0,NULL },    // 13
  238.     { NM_TITLE, NULL,0,0,0,NULL},                    // 14
  239.         { NM_ITEM,NULL,NULL,0,0,0 },        // 15
  240.         { NM_ITEM,NULL,NULL,0,0,0 },        // 16
  241.        { NM_ITEM,NULL,NULL,0,0,NULL },            // 17
  242.             { NM_SUB,NULL,NULL,0,0,0 },                // 18
  243.             { NM_SUB,NULL,NULL,0,0,0 },            // 19
  244.             { NM_SUB,NULL,NULL,0,0,0 },            // 20
  245.             { NM_SUB,NULL,NULL,0,0,0 },                // 21
  246.             { NM_SUB,NULL,NULL,0,0,0 },                // 22
  247.         { NM_ITEM,NULL,0,0,0,NULL },                                        // 23
  248.             { NM_SUB, NULL,NULL,CHECKIT,~1,NULL },                    // 24
  249.             { NM_SUB, NULL,NULL,CHECKIT,~2,NULL },                    // 25
  250.             { NM_SUB, NULL,NULL,CHECKIT,~4,NULL },                    // 26
  251.             { NM_SUB, NULL,     NULL,CHECKIT,~8,NULL },                    // 27
  252.             { NM_SUB, NULL,  NULL,CHECKIT,~16,NULL },                    // 28
  253.             { NM_SUB, NULL,    NULL,CHECKIT,~32,NULL },                    // 29
  254.             { NM_SUB, NULL,  NULL,CHECKIT,~64,NULL },                    // 30
  255.             { NM_SUB, NULL,    NULL,CHECKIT|CHECKED,~128,NULL },        // 31
  256.     { NM_TITLE, NULL,0,0,0,NULL },                                    //    32
  257.         { NM_ITEM,NULL,NULL, CHECKIT|MENUTOGGLE,0,NULL },            // 33
  258.         { NM_ITEM,NULL,NULL, CHECKIT|MENUTOGGLE,0,NULL },            // 34
  259.         { NM_ITEM,NULL,NULL, CHECKIT|MENUTOGGLE,0,NULL },            //             35
  260.         { NM_ITEM,NULL,NULL,0,NULL},                                    //                36
  261.             { NM_SUB, NULL,NULL,CHECKIT,~1,NULL },                //                37
  262.             { NM_SUB, NULL,NULL,CHECKIT,~2,NULL },            //                38
  263.             { NM_SUB, NULL,NULL,CHECKIT,~4,NULL },        //                39
  264.             { NM_SUB, NULL,NULL,CHECKIT,~8,NULL },                        //                40
  265.             { NM_SUB, NULL,NULL,CHECKIT,~16,NULL },                        //                41
  266.         { NM_ITEM,NULL,NULL,0,NULL},                        //                42
  267.         { NM_ITEM,NULL,NULL,0,NULL},                            //                43
  268.         { NM_ITEM,NULL,NULL,0,NULL},                            //                44
  269.         { NM_ITEM,NULL,NULL,0,NULL},                        //                45
  270.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },                                //             46
  271.        { NM_ITEM,NULL,NULL,CHECKIT|MENUTOGGLE,NULL},//            47
  272.        { NM_ITEM,NULL,NULL,CHECKIT|MENUTOGGLE,NULL},    //                48
  273.         { NM_ITEM,NULL, NULL, 0, NULL },                    //             49
  274.        { NM_ITEM,NULL, NULL, 0, NULL },                        //             50
  275.        { NM_ITEM,NULL, NULL, 0, NULL },                //             51
  276.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },                                //             52
  277.         { NM_ITEM,NULL,NULL, CHECKIT|MENUTOGGLE,NULL },//        53
  278.        { NM_ITEM,NULL,NULL,0,NULL},                                        //                54
  279.        { NM_ITEM,NULL,NULL,0,NULL},                                        //                55
  280.        { NM_ITEM,NULL,NULL,0,NULL},                            //                56
  281.        { NM_ITEM,NULL,NULL,0,NULL},                            //                57
  282.        { NM_ITEM,NULL,NULL,0,NULL},                            //                58
  283.        { NM_ITEM,NULL,NULL,0,NULL},                                    //                59
  284.        { NM_ITEM,NULL,NULL,0,NULL},                                        //                60
  285.             { NM_SUB, NULL,NULL,CHECKIT|MENUTOGGLE,NULL },                    //                61
  286.             { NM_SUB, NULL,NULL,CHECKIT|MENUTOGGLE,NULL },    //                62
  287.             { NM_SUB, NULL,NULL,CHECKIT|MENUTOGGLE,NULL },                //                63
  288.             { NM_SUB, NULL,NULL,CHECKIT|MENUTOGGLE,NULL },//                64
  289.             { NM_SUB, NULL,NULL,CHECKIT|MENUTOGGLE,NULL },//                65
  290.        { NM_ITEM,NULL, NULL, 0, NULL },                            //             66
  291.             { NM_SUB, NULL,NULL,CHECKIT,~1,NULL },                    //                67
  292.             { NM_SUB, NULL,NULL,CHECKIT,~2,NULL },                    //                68
  293.             { NM_SUB, NULL,NULL,CHECKIT,~4,NULL },        //                69
  294.             { NM_SUB, NULL,NULL,CHECKIT,~8,NULL },            //                70
  295.             { NM_SUB, NULL,NULL,CHECKIT,~16,NULL },    //            71
  296.             { NM_SUB, NULL,NULL,CHECKIT,~32,NULL },                //                72
  297.             { NM_SUB, NULL,NULL,CHECKIT,~64,NULL },    //                73
  298.             { NM_SUB, NULL,NULL,CHECKIT,~128,NULL },                //                74
  299.             { NM_SUB, NULL,NULL,CHECKIT,~256,NULL },                    //                75
  300.             { NM_SUB, NULL,NULL,CHECKIT,~512,NULL },                //                76
  301.             { NM_SUB, NULL,NULL,CHECKIT,~1024,NULL },                    //                77
  302.             { NM_SUB, NULL,NULL,CHECKIT,~2048,NULL },                    //                78
  303.             { NM_SUB, NULL,NULL,CHECKIT,~4096,NULL },                //                79
  304.             { NM_SUB, NULL,NULL,CHECKIT,~8192,NULL },                //                80
  305.        { NM_ITEM,NULL, NULL, 0, NULL },                    //             81
  306.        { NM_ITEM,NULL, NULL, 0, NULL },                    //                82
  307.        { NM_ITEM,NULL,NULL,CHECKIT|MENUTOGGLE,NULL },        //                83
  308.        { NM_ITEM,NULL,NULL,CHECKIT|MENUTOGGLE,NULL },            //                84
  309.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },