home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / gfx / edit / tsmorph / controlwindow.c < prev    next >
C/C++ Source or Header  |  1993-12-21  |  19KB  |  619 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. //    $Author: M_J_Paddock $
  21. //    $Date: 1993/09/04 17:42:36 $
  22. //    $Revision: 1.12 $
  23.  
  24. // Include precompiled headers if not already included
  25. #ifndef TSMORPH_H
  26. #include "TSMorph.h"
  27. #endif
  28.  
  29. /* Gadgets in the control window */
  30. extern struct Gadget OneGadget = {
  31.     &TwoGadget,
  32.     0,0,
  33.     IMAGE_WIDTH,IMAGE_HEIGHT,
  34.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  35.     GACT_IMMEDIATE,
  36.     GTYP_BOOLGADGET,
  37.     &One_im,
  38.     &One_imx,
  39.     NULL,
  40.     0,
  41.     NULL,
  42.     ONEGADGET,
  43.     NULL
  44. };
  45. extern struct Gadget TwoGadget = {
  46.     &RelGadget,
  47.     0,0,
  48.     IMAGE_WIDTH,IMAGE_HEIGHT,
  49.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  50.     GACT_IMMEDIATE,
  51.     GTYP_BOOLGADGET,
  52.     &Two_im,
  53.     &Two_imx,
  54.     NULL,
  55.     0,
  56.     NULL,
  57.     TWOGADGET,
  58.     NULL
  59. };
  60. extern struct Gadget RelGadget = {
  61.     &MyAddGadget,
  62.     0,0,
  63.     IMAGE_WIDTH,IMAGE_HEIGHT,
  64.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  65.     GACT_IMMEDIATE,
  66.     GTYP_BOOLGADGET,
  67.     &Rel_im,
  68.     &Rel_imx,
  69.     NULL,
  70.     0,
  71.     NULL,
  72.     RELGADGET,
  73.     NULL
  74. };
  75. extern struct Gadget MyAddGadget = {    // Note not AddGadget as this is a function!
  76.     &DelGadget,
  77.     0,0,
  78.     IMAGE_WIDTH,IMAGE_HEIGHT,
  79.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  80.     GACT_IMMEDIATE,
  81.     GTYP_BOOLGADGET,
  82.     &Add_im,
  83.     &Add_imx,
  84.     NULL,
  85.     0,
  86.     NULL,
  87.     ADDGADGET,
  88.     NULL
  89. };
  90. extern struct Gadget DelGadget = {
  91.     &LinkGadget,
  92.     0,0,
  93.     IMAGE_WIDTH,IMAGE_HEIGHT,
  94.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  95.     GACT_IMMEDIATE,
  96.     GTYP_BOOLGADGET,
  97.     &Del_im,
  98.     &Del_imx,
  99.     NULL,
  100.     0,
  101.     NULL,
  102.     DELGADGET,
  103.     NULL
  104. };
  105. extern struct Gadget LinkGadget = {
  106.     &UnlinkGadget,
  107.     0,0,
  108.     IMAGE_WIDTH,IMAGE_HEIGHT,
  109.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  110.     GACT_IMMEDIATE,
  111.     GTYP_BOOLGADGET,
  112.     &Link_im,
  113.     &Link_imx,
  114.     NULL,
  115.     0,
  116.     NULL,
  117.     LINKGADGET,
  118.     NULL
  119. };
  120. extern struct Gadget UnlinkGadget = {
  121.     &NoneGadget,
  122.     0,0,
  123.     IMAGE_WIDTH,IMAGE_HEIGHT,
  124.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  125.     GACT_IMMEDIATE,
  126.     GTYP_BOOLGADGET,
  127.     &Unlink_im,
  128.     &Unlink_imx,
  129.     NULL,
  130.     0,
  131.     NULL,
  132.     UNLINKGADGET,
  133.     NULL
  134. };
  135. extern struct Gadget NoneGadget = {
  136.     &stGadget,
  137.     0,0,
  138.     IMAGE_WIDTH,IMAGE_HEIGHT,
  139.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE|GFLG_SELECTED,
  140.     GACT_IMMEDIATE,
  141.     GTYP_BOOLGADGET,
  142.     &None_im,
  143.     &None_imx,
  144.     NULL,
  145.     0,
  146.     NULL,
  147.     NONEGADGET,
  148.     NULL
  149. };
  150. extern struct Gadget stGadget = {
  151.     &prevGadget,
  152.     0,0,
  153.     AIMAGE,AIMAGE,
  154.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  155.     GACT_RELVERIFY,
  156.     GTYP_BOOLGADGET,
  157.     &st_im,
  158.     &st_imx,
  159.     NULL,
  160.     0,
  161.     NULL,
  162.     STGADGET,
  163.     NULL
  164. };
  165. extern struct Gadget prevGadget = {
  166.     &gotoGadget,
  167.     0,0,
  168.     AIMAGE,AIMAGE,
  169.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  170.     GACT_RELVERIFY,
  171.     GTYP_BOOLGADGET,
  172.     &prev_im,
  173.     &prev_imx,
  174.     NULL,
  175.     0,
  176.     NULL,
  177.     PREVGADGET,
  178.     NULL
  179. };
  180. extern struct Gadget gotoGadget = {
  181.     &nextGadget,
  182.     0,0,
  183.     AIMAGE+1,AIMAGE,
  184.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  185.     GACT_RELVERIFY,
  186.     GTYP_BOOLGADGET,
  187.     &goto_im,
  188.     &goto_imx,
  189.     NULL,
  190.     0,
  191.     NULL,
  192.     GOTOGADGET,
  193.     NULL
  194. };
  195. extern struct Gadget nextGadget = {
  196.     &lastGadget,
  197.     0,0,
  198.     AIMAGE,AIMAGE,
  199.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  200.     GACT_RELVERIFY,
  201.     GTYP_BOOLGADGET,
  202.     &next_im,
  203.     &next_imx,
  204.     NULL,
  205.     0,
  206.     NULL,
  207.     NEXTGADGET,
  208.     NULL
  209. };
  210. extern struct Gadget lastGadget = {
  211.     NULL,
  212.     0,0,
  213.     AIMAGE,AIMAGE,
  214.     GFLG_GADGHIMAGE|GFLG_GADGIMAGE,
  215.     GACT_RELVERIFY,
  216.     GTYP_BOOLGADGET,
  217.     &last_im,
  218.     &last_imx,
  219.     NULL,
  220.     0,
  221.     NULL,
  222.     LASTGADGET,
  223.     NULL
  224. };
  225.  
  226. /* Menu for the Control Window - comments on the right are the array index */
  227. extern struct NewMenu MyNewMenu[] = {    // There must be an easier way!
  228.     { NM_TITLE, "Project",NULL,0,0,NULL },            // 0
  229.         { NM_ITEM,"New Points","N",0,0,0 },            // 1
  230.         { NM_ITEM,"Open Points...","O",0,0,0 },    // 2
  231.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 3
  232.        { NM_ITEM,"Save","S",0,0,0},                    // 4
  233.        { NM_ITEM,"Save As...","A",0,0,0},            // 5
  234.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 6
  235.         { NM_ITEM,"About...",NULL,0,0,0 },            // 7
  236.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 8
  237.         { NM_ITEM,"Exit Points",NULL,0,0,0 },        // 9
  238.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 10
  239.         { NM_ITEM,"Quit","Q",0,0,0 },                    // 11
  240.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },        // 12
  241.         { NM_ITEM,"Preview...",NULL,0,0,NULL },    // 13
  242.     { NM_TITLE, "Edit",0,0,0,NULL},                    // 14
  243.         { NM_ITEM,"Add Grid...","G",0,0,0 },        // 15
  244.        { NM_ITEM,"Frame",NULL,0,0,NULL },            // 16
  245.             { NM_SUB,"First","<",0,0,0 },                // 17
  246.             { NM_SUB,"Previous","-",0,0,0 },            // 18
  247.             { NM_SUB,"Goto...",".",0,0,0 },            // 19
  248.             { NM_SUB,"Next","+",0,0,0 },                // 20
  249.             { NM_SUB,"Last",">",0,0,0 },                // 21
  250.         { NM_ITEM,"Mode",0,0,0,NULL },                                        // 22
  251.             { NM_SUB, "Edit One","1",CHECKIT,~1,NULL },                    // 23
  252.             { NM_SUB, "Edit Two","2",CHECKIT,~2,NULL },                    // 24
  253.             { NM_SUB, "Edit Rel","3",CHECKIT,~4,NULL },                    // 25
  254.             { NM_SUB, "Add",     "4",CHECKIT,~8,NULL },                    // 26
  255.             { NM_SUB, "Delete",  "5",CHECKIT,~16,NULL },                    // 27
  256.             { NM_SUB, "Link",    "6",CHECKIT,~32,NULL },                    // 28
  257.             { NM_SUB, "Unlink",  "7",CHECKIT,~64,NULL },                    // 29
  258.             { NM_SUB, "None",    "8",CHECKIT|CHECKED,~128,NULL },        // 30
  259.     { NM_TITLE, "Settings",0,0,0,NULL },                                    //    31
  260.         { NM_ITEM,"Create Icons?",NULL, CHECKIT|MENUTOGGLE,0,NULL },            // 32
  261.         { NM_ITEM,"Change Palette?","P", CHECKIT|MENUTOGGLE,0,NULL },            // 33
  262.         { NM_ITEM,"Zoom?","Z", CHECKIT|MENUTOGGLE,0,NULL },            //             34
  263.         { NM_ITEM,"Open Mode",NULL,0,NULL},                                    //                35
  264.             { NM_SUB, "ILBM Always",NULL,CHECKIT,~1,NULL },                //                36
  265.             { NM_SUB, "ILBM If ILBM",NULL,CHECKIT,~2,NULL },            //                37
  266.             { NM_SUB, "ILBM If Colours",NULL,CHECKIT,~4,NULL },        //                38
  267.             { NM_SUB, "Remap",NULL,CHECKIT,~8,NULL },                        //                39
  268.             { NM_SUB, "Opal",NULL,CHECKIT,~16,NULL },                        //                40
  269.         { NM_ITEM,"Public Screen...",NULL,0,NULL},                        //                41
  270.         { NM_ITEM,"Custom Mode...",NULL,0,NULL},                            //                42
  271.         { NM_ITEM,"Custom Depth...",NULL,0,NULL},                            //                43
  272.         { NM_ITEM,"Preview Script...",NULL,0,NULL},                        //                44
  273.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },                                //             45
  274.        { NM_ITEM,"Create Prefs Icons?",NULL,CHECKIT|MENUTOGGLE,NULL},//            46
  275.        { NM_ITEM,"Keep Settings?",NULL,CHECKIT|MENUTOGGLE,NULL},    //                47
  276.         { NM_ITEM,"Load Settings...", NULL, 0, NULL },                    //             48
  277.        { NM_ITEM,"Save Settings", NULL, 0, NULL },                        //             49
  278.        { NM_ITEM,"Save Settings As...", NULL, 0, NULL },                //             50
  279.        { NM_ITEM,NM_BARLABEL,NULL,0,0,NULL },                                //             51
  280.         { NM_ITEM,"Create Render Icons?",NULL, CHECKIT|MENUTOGGLE,NULL },//        52
  281.        { NM_ITEM,"DX...",NULL,0,NULL},                                        //                53
  282.        { NM_ITEM,"DY...",NULL,0,NULL},                                        //                54
  283.        { NM_ITEM,"Load Script...",NULL,0,NULL},                            //                55
  284.        { NM_ITEM,"Pre Script...",NULL,0,NULL},                            //                56
  285.        { NM_ITEM,"Post Script...",NULL,0,NULL},                            //                57
  286.        { NM_ITEM,"Depth...",NULL,0,NULL},                                    //                58
  287.        { NM_ITEM,"Mode",NULL,0,NULL},                                        //                59
  288.             { NM_SUB, "Quick(0)",NULL,CHECKIT,~1,NULL },                    //                60
  289.             { NM_SUB, "Quick Stationary(1)",NULL,CHECKIT,~2,NULL },    //                61
  290.             { NM_SUB, "Closest(2)",NULL,CHECKIT,~4,NULL },                //                62
  291.             { NM_SUB, "Closest Stationary(3)",NULL,CHECKIT,~8,NULL },//                63
  292.        { NM_ITEM,"Save Format", NULL, 0, NULL },                            //             64
  293.             { NM_SUB, "ILBM 24",NULL,CHECKIT,~1,NULL },                    //                65
  294.             { NM_SUB, "Opal 24",NULL,CHECKIT,~2,NULL },                    //                66
  295.             { NM_SUB, "Opal 24 Thumbnail",NULL,CHECKIT,~4,NULL },        //                67
  296.             { NM_SUB, "Opal 24 Fast",NULL,CHECKIT,~8,NULL },            //                68
  297.             { NM_SUB, "Opal 24 Fast Thumbnail",NULL,CHECKIT,~16,NULL },    //            69
  298.             { NM_SUB, "Opal JPEG",NULL,CHECKIT,~32,NULL },                //                70
  299.             { NM_SUB, "Opal JPEG Thumbnail",NULL,CHECKIT,~64,NULL },    //                71
  300.             { NM_SUB, "PPM (P6)",NULL,CHECKIT,~128,NULL },                //                72
  301.             { NM_SUB, "B&W 16",NULL,CHECKIT,~256,NULL },                    //                73
  302.             { NM_SUB, "B&W 256",NULL,CHECKIT,~512,NULL },                //                74
  303.             { NM_SUB, "HAM 6