home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 266.lha / SetKey_v2.0 / src / i.c < prev    next >
C/C++ Source or Header  |  1989-07-10  |  14KB  |  563 lines

  1. /*---------------------------------------------------------------------------
  2.     file intui.c
  3.        This file contains ALL the declarations of global intuition
  4.     structs for the keymap editor.
  5. */
  6.  
  7. #define HEX_ID 100
  8. #define QUIT_ID 200
  9. #define STRING_ID 300
  10. #define CANCEL_ID 400
  11. #define FILE_ID 199
  12. #define DIR_ID 299
  13. #define GO_ID 399
  14.  
  15. #define ROW1 6
  16. #define ROW2 27
  17. #define ROW3 40
  18.  
  19. extern struct Image skl_img;
  20.  
  21. extern char name[90][11];
  22. extern char qual_name[8][18];
  23.  
  24. struct Gadget gadget[90];
  25.  
  26. UBYTE filestring[48];
  27. UBYTE dirstring[48] = {"DEVS:keymaps/"};
  28.  
  29. /***************************************************************************
  30.  *            This stuff is all for the "modify key" requester
  31.  */
  32.  
  33. /*-----------------------------------------------------*/
  34. /*        The input string gadget definition           */
  35.  
  36. UBYTE instring[128];
  37. UBYTE undostring[128];
  38. UBYTE inmsg[] = {"Type in new string for this key:"};
  39.  
  40. struct IntuiText input_text = {
  41.    1,0,JAM1,0,-10,NULL,(UBYTE *)&inmsg,NULL
  42.    };
  43.  
  44. struct StringInfo stringinfo = {
  45.    (UBYTE *)&instring,(UBYTE *)&undostring,0,128,0,
  46.    NULL,NULL,NULL,NULL,NULL,NULL,NULL,&MyKeyMap};
  47.  
  48. struct Gadget input_gadget = {
  49.    NULL,
  50.    10,ROW2,600,11,GADGHCOMP,ALTKEYMAP | TOGGLESELECT | RELVERIFY,
  51.    STRGADGET | REQGADGET,NULL,NULL,&input_text,NULL,
  52.    (APTR)&stringinfo,STRING_ID,NULL
  53.    };
  54.  
  55. /*-----------------------------------------------------*/
  56. /*         The hex input string gadget definition      */
  57.  
  58. UBYTE hexinstring[10];
  59. UBYTE hexundostring[10];
  60.  
  61. UBYTE hexval[4];
  62. struct IntuiText hex_data_text = {
  63.    1,2,JAM2,30,0,NULL,(UBYTE *)&hexval,NULL
  64.    };
  65.  
  66. UBYTE hexmsg[] = {"<- Enter value in hex  (0d = return)"};
  67. struct IntuiText hex_text = {
  68.    1,0,JAM1,60,0,NULL,(UBYTE *)&hexmsg,&hex_data_text
  69.    };
  70.  
  71. struct StringInfo hexstringinfo = {
  72.    (UBYTE *)&hexinstring,(UBYTE *)&hexundostring,0,3,0,
  73.    NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL };
  74.  
  75. struct Gadget hex_gadget = {
  76.    &input_gadget,
  77.    10,ROW3,24,11,GADGHCOMP,GADGIMMEDIATE | RELVERIFY,STRGADGET | REQGADGET,
  78.    NULL,NULL,&hex_text,NULL,(APTR)&hexstringinfo,HEX_ID,NULL
  79.    };
  80.  
  81. /*-----------------------------------------------------*/
  82. /*         The cancel gadget definition                */
  83.  
  84. UBYTE cancelmsg[] = {"Cancel"};
  85. SHORT cancel1[] = { 0,0, 60,0, 60,11, 0,11, 0,0 };
  86.  
  87. struct Border cancel_border = {
  88.    0,0,1,0,JAM1,5,(SHORT *)&cancel1,NULL 
  89.    };
  90.  
  91. struct IntuiText cancel_text = {
  92.    1,0,JAM1,8,2,NULL,(UBYTE *)&cancelmsg,NULL
  93.    };
  94.  
  95. struct Gadget cancel_gadget = {
  96.    &hex_gadget,
  97.    540,ROW3,60,11,GADGHCOMP,RELVERIFY | ENDGADGET,BOOLGADGET | REQGADGET,
  98.    (APTR)&cancel_border,NULL,&cancel_text,NULL,NULL,CANCEL_ID,NULL
  99.    };
  100.  
  101. /*-----------------------------------------------------*/
  102. /*         The modfiy keymap gadget definition                  */
  103.  
  104. UBYTE quitmsg[] = {"Modify Keymap"};
  105. SHORT quit1[] = { 0,0, 110,0, 110,11, 0,11, 0,0 };
  106.  
  107. struct Border quit_border = {
  108.    0,0,1,0,JAM1,5,(SHORT *)&quit1,NULL 
  109.    };
  110.  
  111. struct IntuiText quit_text = {
  112.    1,0,JAM1,5,2,NULL,(UBYTE *)&quitmsg,NULL
  113.    };
  114.  
  115. struct Gadget quitgadget = {
  116.    &cancel_gadget,
  117.    400,ROW3,110,11,GADGHCOMP,RELVERIFY | ENDGADGET,BOOLGADGET | REQGADGET,
  118.    (APTR)&quit_border,NULL,&quit_text,NULL,NULL,QUIT_ID,NULL
  119.    };
  120.  
  121. /*-----------------------------------------------------*/
  122. /*         The main requester definition               */
  123.  
  124. SHORT border1[] = { 0,0, 632,0, 632,58, 0,58, 0,0 };
  125. SHORT border2[] = { 4,2, 630,2, 630,56, 4,56, 4,2 };
  126.  
  127. struct Border req_border[] = {
  128.    {0,0,2,1,COMPLEMENT,5,(SHORT *)&border1,&req_border[1] },
  129.    {0,0,2,1,COMPLEMENT,5,(SHORT *)&border2,NULL }
  130.    };
  131.  
  132. UBYTE qualtxt[] = {"Qualifier: shift+alt+control"};
  133. struct IntuiText qual_text = {
  134.    1,0,JAM1,400,ROW1,NULL,(UBYTE *)&qualtxt,NULL
  135.    };
  136.  
  137. UBYTE keyp[] = {"Key Selected:"};
  138. struct IntuiText key_text = {
  139.    1,0,JAM1,20,ROW1,NULL,(UBYTE *)&keyp,&qual_text
  140.    };
  141.  
  142. UBYTE code_buff[] = {"Keycode:                 "};
  143. struct IntuiText code_text = {
  144.    1,0,JAM1,220,ROW1,NULL,(UBYTE *)&code_buff,&key_text
  145.    };
  146.  
  147. struct IntuiText name_text = {
  148.    1,0,JAM1,130,ROW1,NULL,NULL,&code_text
  149.    };
  150.  
  151. struct Requester main_requester = {
  152.    NULL,
  153.    3,139,636,60,0,0,&quitgadget,&req_border[0],&name_text,NULL,
  154.    2,NULL,NULL,NULL
  155.    };
  156.  
  157. /***************************************************************************
  158.  *   This is for various auto requesters
  159.  */
  160.  
  161. /*-----------------------------------------------------*/
  162. /*         The auto requester definitions              */
  163.  
  164. UBYTE cred_msg1[] = {"SetKey was made and produced with..."};
  165. UBYTE cred_msg2[] = {"Keymap doctoring by            Charles J. Carter"};
  166. UBYTE cred_msg3[] = {"Intuition User Interface by    *emmbee* MWBeutjer"};
  167. UBYTE cred_msg4[] = {"ArtWork and Font by            Jim Watson"};
  168. struct IntuiText cred3_txt = {
  169.    0,1,JAM1,12,43,NULL,(UBYTE *)&cred_msg4[0],NULL
  170.    };
  171. struct IntuiText cred2_txt = {
  172.    0,1,JAM1,12,32,NULL,(UBYTE *)&cred_msg3[0],&cred3_txt
  173.    };
  174. struct IntuiText cred1_txt = {
  175.    0,1,JAM1,12,21,NULL,(UBYTE *)&cred_msg2[0],&cred2_txt
  176.    };
  177. struct IntuiText cred_txt = {
  178.    0,1,JAM1,12,10,NULL,(UBYTE *)&cred_msg1[0],&cred1_txt
  179.    };
  180.  
  181. struct IntuiText toolong_txt = {
  182.    0,1,JAM1,12,10,NULL,(UBYTE *)
  183. "Too many characters in Key; Please Shorten",NULL
  184.    };
  185.  
  186. UBYTE nomsg[] = {"Cancel"};
  187. struct IntuiText no_txt = {
  188.    0,1,JAM1,AUTOLEFTEDGE,AUTOTOPEDGE,NULL,(UBYTE *)&nomsg[0],NULL
  189.    };
  190.  
  191. UBYTE yesmsg[] = {"Exit"};
  192. struct IntuiText yes_txt = {
  193.    0,1,JAM1,AUTOLEFTEDGE,AUTOTOPEDGE,NULL,(UBYTE *)&yesmsg[0],NULL
  194.    };
  195.  
  196. UBYTE exmsg[] = {"You are exiting without saving the keymap!!"};
  197. struct IntuiText auto_txt = {
  198.    0,1,JAM1,8,10,NULL,(UBYTE *)&exmsg[0],NULL
  199.    };
  200.  
  201. UBYTE errmsg[] = {"File access error. Load/Save failed!"};
  202. struct IntuiText err_txt = {
  203.    0,1,JAM1,8,10,NULL,(UBYTE *)&errmsg[0],NULL
  204.    };
  205.  
  206. UBYTE ayesmsg[] = {"Load"};
  207. struct IntuiText ayes_txt = {
  208.    0,1,JAM1,AUTOLEFTEDGE,AUTOTOPEDGE,NULL,(UBYTE *)&ayesmsg[0],NULL
  209.    };
  210.  
  211. UBYTE ldmsg[] = {"You have not saved your changes!!"};
  212. struct IntuiText ald_txt = {
  213.    0,1,JAM1,8,10,NULL,(UBYTE *)&ldmsg[0],NULL
  214.    };
  215.  
  216. UBYTE kstr[8][128];
  217.  
  218. struct IntuiText dstr_txt[8] = {
  219.    {
  220.    0,1,JAM1,8,12,NULL,(UBYTE *)&kstr[0][0],&dstr_txt[1]
  221.    },
  222.  
  223.    {
  224.    0,1,JAM1,8,23,NULL,(UBYTE *)&kstr[1][0],&dstr_txt[2]
  225.    },
  226.  
  227.    {
  228.    0,1,JAM1,8,34,NULL,(UBYTE *)&kstr[2][0],&dstr_txt[3]
  229.    },
  230.  
  231.    {
  232.    0,1,JAM1,8,45,NULL,(UBYTE *)&kstr[3][0],&dstr_txt[4]
  233.    },
  234.  
  235.    {
  236.    0,1,JAM1,8,56,NULL,(UBYTE *)&kstr[4][0],&dstr_txt[5]
  237.    },
  238.  
  239.    {
  240.    0,1,JAM1,8,67,NULL,(UBYTE *)&kstr[5][0],&dstr_txt[6]
  241.    },
  242.  
  243.    {
  244.    0,1,JAM1,8,78,NULL,(UBYTE *)&kstr[6][0],&dstr_txt[7]
  245.    },
  246.  
  247.    {
  248.    0,1,JAM1,8,89,NULL,(UBYTE *)&kstr[7][0],NULL
  249.    }
  250. };
  251.  
  252. UBYTE dstr_msg[] = {"Current definitions of             " };
  253. struct IntuiText dstr = {
  254.    0,1,JAM1,8,3,NULL,(UBYTE *)&dstr_msg[0],&dstr_txt[0] };
  255.  
  256. /***************************************************************************
  257.  *  This is for the menu.
  258.  */
  259.  
  260. #define CRED_IT 4
  261.  
  262. UBYTE crtxt[] = { "Hoopla Department!" };
  263.  
  264. struct IntuiText credit_item_text = {
  265.    0,1,JAM1,3,2,NULL,(UBYTE *)&crtxt,NULL
  266.    };
  267.  
  268. struct MenuItem credit_item = {
  269.    NULL,
  270.    0,44,300,11,
  271.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  272.    NULL,
  273.    (APTR)&credit_item_text,
  274.    NULL,
  275.    NULL,
  276.    NULL,
  277.    NULL    };
  278.  
  279. /*-----------------------------------------------------*/
  280. /*          Sub menu #2                                */
  281.  
  282. #define EXIT_NO 1
  283.  
  284. UBYTE exit_txt[] = { "Exit without setting the map " };
  285.  
  286. struct IntuiText exit_item_text = {
  287.    0,1,JAM1,3,2,NULL,(UBYTE *)&exit_txt,NULL
  288.    };
  289.  
  290. struct MenuItem exit_item = {
  291.    NULL,
  292.    290,13,250,11,
  293.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  294.    NULL,
  295.    (APTR)&exit_item_text,
  296.    NULL,
  297.    NULL,
  298.    NULL,
  299.    NULL    };
  300.  
  301. #define EXIT_SET 0
  302.  
  303. UBYTE sv_st_txt[] = { "Exit & set this keymap " };
  304.  
  305. struct IntuiText sv_st_item_text = {
  306.    0,1,JAM1,3,2,NULL,(UBYTE *)&sv_st_txt,NULL
  307.    };
  308.  
  309. struct MenuItem sv_st_item = {
  310.    &exit_item,
  311.    290,2,250,11,
  312.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  313.    NULL,
  314.    (APTR)&sv_st_item_text,
  315.    NULL,
  316.    NULL,
  317.    NULL,
  318.    NULL    };
  319.  
  320. #define EXIT_OPT 3
  321.  
  322. UBYTE qtxt[] = { "End keymap editing " };
  323.  
  324. struct IntuiText quit_item_text = {
  325.    0,1,JAM1,3,2,NULL,(UBYTE *)&qtxt,NULL
  326.    };
  327.  
  328. struct MenuItem quit_item = {
  329.    &credit_item,
  330.    0,33,300,11,
  331.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  332.    NULL,
  333.    (APTR)&quit_item_text,
  334.    NULL,
  335.    NULL,
  336.    &sv_st_item,
  337.    NULL    };
  338.  
  339. #define SAVE_IT 2
  340.  
  341. UBYTE savetxt[] = { "Save a keymap to the disk " };
  342.  
  343. struct IntuiText save_item_text = {
  344.    0,1,JAM1,3,2,NULL,(UBYTE *)&savetxt,NULL
  345.    };
  346.  
  347. struct MenuItem save_item = {
  348.    &quit_item,
  349.    0,22,300,11,
  350.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  351.    NULL,
  352.    (APTR)&save_item_text,
  353.    NULL,
  354.    NULL,
  355.    NULL,
  356.    NULL    };
  357.  
  358. #define LOAD_IT 1
  359.  
  360. UBYTE loadtxt[] = { "Load a keymap from the disk " };
  361.  
  362. struct IntuiText load_item_text = {
  363.    0,1,JAM1,3,2,NULL,(UBYTE *)&loadtxt,NULL
  364.    };
  365.  
  366. struct MenuItem load_item = {
  367.    &save_item,
  368.    0,11,300,11,
  369.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  370.    1L,
  371.    (APTR)&load_item_text,
  372.    NULL,
  373.    NULL,
  374.    NULL,
  375.    NULL    };
  376.  
  377. #define CHANGE 1
  378.  
  379. UBYTE change_txt[] = { "   Change the keys in the map" };
  380.  
  381. struct IntuiText change_item_text = {
  382.    0,1,JAM1,3,2,NULL,(UBYTE *)&change_txt,NULL
  383.    };
  384.  
  385. struct MenuItem change_item = {
  386.    NULL,
  387.    290,13,250,11,
  388.    ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT | CHECKED,
  389.    1L,
  390.    (APTR)&change_item_text,
  391.    NULL,
  392.    NULL,
  393.    NULL,
  394.    NULL    };
  395.  
  396. #define VIEW_MODE 0
  397.  
  398. UBYTE view_txt[] = { "   View the keys in the keymap" };
  399.  
  400. struct IntuiText view_item_text = {
  401.    0,1,JAM1,3,2,NULL,(UBYTE *)&view_txt,NULL
  402.    };
  403.  
  404. struct MenuItem view_item = {
  405.    &change_item,
  406.    290,2,250,11,
  407.    ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
  408.    0xFFFEL,
  409.    (APTR)&view_item_text,
  410.    NULL,
  411.    NULL,
  412.    NULL,
  413.    NULL    };
  414.  
  415. #define MODE_IT 0
  416.  
  417. UBYTE modetxt[] = { "Select View or Change Mode" };
  418.  
  419. struct IntuiText mode_item_text = {
  420.    0,1,JAM1,3,2,NULL,(UBYTE *)&modetxt,NULL
  421.    };
  422.  
  423. struct MenuItem mode_item = {
  424.    &load_item,
  425.    0,0,300,11,
  426.    ITEMTEXT | ITEMENABLED | HIGHCOMP,
  427.    NULL,
  428.    (APTR)&mode_item_text,
  429.    NULL,
  430.    NULL,
  431.    &view_item,
  432.    NULL    };
  433.  
  434. UBYTE menuname[] = { "SetKey: Main Control" };
  435.  
  436. struct Menu menu = {
  437.    NULL,
  438.    10,NULL,300,NULL,
  439.    MENUENABLED,
  440.    (BYTE *)&menuname[0],
  441.    (struct MenuItem *)&mode_item
  442.    };
  443.  
  444. /***************************************************************************
  445.           The new window definition
  446. */
  447.  
  448. struct NewWindow nw = {
  449.    0,0,640,200, /* position */
  450.    -1,-1,       /* pens     */
  451.    CLOSEWINDOW | MENUPICK | GADGETDOWN | RAWKEY | REQSET | GADGETUP,
  452.    WINDOWCLOSE | NOCAREREFRESH | ACTIVATE | WINDOWDEPTH,
  453.    &gadget[0],           /* gadet pointer */
  454.    NULL,        /* user check    */
  455.    (unsigned char *)" SetKey V2.0 Keymap Editor Deluxe ",
  456.    NULL,   /* screen */
  457.    NULL,   /* superbitmap */
  458.    10,10,640,200, /* minmax size */
  459.    WBENCHSCREEN
  460.    };
  461.  
  462. struct Window *w;
  463. extern struct Window *OpenWindow();
  464.  
  465. /*   The "key" gadgets are:
  466.  
  467.      No.      Key associated.
  468.     ====================================
  469.     0        escape
  470.     1-10     function keys (1-10)
  471.     11       delete
  472.     12       tilde
  473.     13-22    1-0 keys
  474.     23       minus
  475.     24       equal
  476.     25       backslash
  477.     26       backspace
  478.     27-29    top row keypad
  479.     30       tab
  480.     31-40    top row alphabet keys
  481.     41       left bracket
  482.     42       right bracket
  483.     43       help key
  484.     44-46    row 2 keypad
  485.    *47       control
  486.    *48       caps lock
  487.     49-57    middle row alphabet keys
  488.     58       semicolon
  489.     59       quote key
  490.     60       return
  491.     61       up arrow
  492.     62-64    row 3 keypad
  493.    *65       left shift
  494.     66-72    bottom row alphabet keys
  495.     73       comma
  496.     74       period
  497.     75       slash
  498.    *76       right shift
  499.     77       left arrow
  500.     78       right arrow
  501.     79       keypad zero
  502.     80       keypad period
  503.    *81       left alt
  504.     82       left Amiga
  505.     83       spacebar
  506.     84       right Amiga
  507.    *85       right alt
  508.     86       down arrow
  509.     87       keypad minus
  510.     88       enter
  511.     ====================================
  512.     * indicates qualifier key - 47,48,65,76,81,85
  513.  
  514. */
  515.  
  516.  
  517. SHORT l_edge[90] = {
  518.    /* gadgets 0-11   */
  519.    9,52,93,133,175,214,269,310,350,392,431,481,
  520.    /* gadgets 12-29  */
  521.    9,49,81,112,144,175,208,238,270,302,333,364,396,427,459,537,570,601,
  522.    /* gadgets 30-46  */
  523.    9,61,93,124,156,187,219,250,282,314,345,376,409,481,538,570,601,
  524.    /* gadgets 47-64  */
  525.    9,40,71,103,134,166,198,229,261,292,323,355,387,417,481,537,570,601,
  526.    /* gadgets 65-80  */
  527.    9,88,118,150,181,213,244,276,307,339,370,402,465,496,537,601,
  528.    /* gadgets 81-93  */
  529.    47,88,128,360,402,481,536,570,440 };
  530.  
  531. SHORT t_edge[90] = {
  532.    0,0,0,0,0,0,0,0,0,0,0,0,
  533.    12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
  534.    24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
  535.    36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,
  536.    48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
  537.    60,60,60,60,60,60,60,60,24 };
  538.  
  539. SHORT width[90] = {
  540.    30,40,39,41,38,38,40,39,41,38,38,30,
  541.    39,31,30,31,30,32,29,31,30,30,30,31,30,31,52,32,30,29,
  542.    51,31,29,31,30,31,30,31,31,30,30,32,29,30,32,30,29,
  543.    30,30,31,30,31,31,30,31,30,30,31,31,29,63,30,32,30,29,
  544.    78,29,31,30,31,30,31,30,31,30,31,62,30,29,63,29,
  545.    40,39,231,40,39,30,33,60,40 };
  546.  
  547. SHORT g_to_key[90] = {
  548.    0x45,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x46,
  549.    0,1,2,3,4,5,6,7,8,9,10,11,12,13,0x41,0x3d,0x3e,0x3f,
  550.    0x42,16,17,18,19,20,21,22,23,24,25,26,27,0x5f,0x2d,0x2e,0x2f,
  551.    0x63,0x62,32,33,34,35,36,37,38,39,40,41,42,0x44,0x4c,0x1d,0x1e,0x1f,
  552.    96,49,50,51,52,53,54,55,56,57,58,97,0x4f,0x4e,15,0x3c,
  553.    0x64,0x66,64,0x67,0x65,0x4d,0x4a,0x43,0x44 };
  554.  
  555. SHORT key_to_g[] = {
  556.    12,13,14,15,16,17,18,19,20,21,22,23,24,25,99,79,31,32,
  557.    33,34,35,36,37,38,39,40,41,42,99,62,63,64,49,50,51,52,
  558.    53,54,55,56,57,58,59,99,99,44,45,46,99,66,67,68,69,70,
  559.    71,72,73,74,75,99,80,27,28,29,83,26,30,88,60,0,11,99,99,99,87,
  560.    99,61,86,78,77,1,2,3,4,5,6,7,8,9,10,99,99,99,99,99,43,
  561.    65,76,48,47,81,85,82,84
  562.    };
  563.