home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / bbs / jet_conf / lists.c < prev    next >
C/C++ Source or Header  |  1993-05-11  |  6KB  |  239 lines

  1. /*
  2.  * LISTS.C
  3.  *
  4.  * handles LISTBOXES in jet_conf.prg;
  5.  *
  6.  */
  7.  
  8. /*--- includes              ---*/
  9.  
  10. #include "import.h"
  11. #include <MGLOBAL.H>
  12. #include <MYDIAL.H>
  13. #include "misc.h"
  14. #include "jet_conf.h"
  15. #include "resource.h"
  16. #include "special.h"
  17. #include "listbox.h"
  18.  
  19. #include "export.h"
  20. #include "lists.h"
  21.  
  22. /*--- defines               ---*/
  23.  
  24. /*--- types                 ---*/
  25.  
  26. /*--- variables             ---*/
  27.  
  28. /*--- prototypes            ---*/
  29.  
  30. LOCAL VOID        init_linklist( VOID );
  31. LOCAL VOID        ClearSelected( OBJECT *tree, WORD object );
  32.  
  33. /*--- functions             ---*/
  34.  
  35. /**-----------------------------------------------------------------------------
  36.  ** Funktionsname:    GLOBAL VOID init_lists( VOID )
  37.  **        ->    nichts.
  38.  **        <-    nichts.
  39.  **
  40.  ** Die Funktion initialisiert die Listen in JET_CONF.PRG.
  41.  **/
  42. GLOBAL VOID init_lists( VOID )
  43. {
  44.     init_linklist( );
  45. }
  46.  
  47. /**-----------------------------------------------------------------------------
  48.  ** Funktionsname:    GLOBAL VOID hndl_linkbox( VOID )
  49.  **        ->    nichts
  50.  **        <-    nichts
  51.  **
  52.  ** Die Funktion übernimmt die Behandlung der Link-Box.
  53.  **/
  54. GLOBAL VOID hndl_linkbox( VOID )
  55. {
  56.     BOOLEAN ok;
  57.     WORD rc = -1;
  58.     DIALINFO di;
  59.  
  60.     open_dial( link_box, FALSE, NULL, &di );
  61.     dial_draw( &di );
  62.  
  63.     while( rc != OK_LINK )
  64.     {
  65.         rc = dial_do( &di, 0, NULL );
  66.  
  67.         switch( rc )
  68.         {
  69.             case LK_AKAS:
  70.                         (VOID) HndlDial( akas_box, 0, FALSE, NULL, &ok );
  71.                         break;
  72.             case LK_ROUTEAKAS:
  73.                         (VOID) HndlDial( raka_box, 0, FALSE, NULL, &ok );
  74.                         break;
  75.             case LK_TAS_ARCMODE:
  76.             case LK_POP_ARCMODE:
  77.                         popup_select( link_box, LK_POP_ARCMODE, popup, POP_ARCTYPE, 0, 0, &ok );
  78.                         break;
  79.             case LK_CIR_ARCMODE:
  80.                         popup_select( link_box, LK_POP_ARCMODE, popup, POP_ARCTYPE, 0, -2, &ok );
  81.                         break;
  82.             case LK_TAS_PKTTP:
  83.             case LK_POP_PKTTP:
  84.                         popup_select( link_box, LK_POP_PKTTP, popup, POP_PKTTYPE, 0, 0, &ok );
  85.                         break;
  86.             case LK_CIR_PKTTP:
  87.                         popup_select( link_box, LK_POP_PKTTP, popup, POP_PKTTYPE, 0, -2, &ok );
  88.                         break;
  89.             case LK_TAS_NETMT:
  90.             case LK_POP_NETMT:
  91.                         popup_select( link_box, LK_POP_NETMT, popup, POP_INTL, 0, 0, &ok );
  92.                         break;
  93.             case LK_CIR_NETMT:
  94.                         popup_select( link_box, LK_POP_NETMT, popup, POP_INTL, 0, -2, &ok );
  95.                         break;
  96.             case LK_TAS_ECHOT:
  97.             case LK_POP_ECHOT:
  98.                         popup_select( link_box, LK_POP_ECHOT, popup, POP_INTL, 0, 0, &ok );
  99.                         break;
  100.             case LK_CIR_ECHOT:
  101.                         popup_select( link_box, LK_POP_ECHOT, popup, POP_INTL, 0, -2, &ok );
  102.                         break;
  103.             case LK_TAS_INTLM:
  104.             case LK_POP_INTLM:
  105.                         popup_select( link_box, LK_POP_INTLM, popup, POP_INTL, 0, 0, &ok );
  106.                         break;
  107.             case LK_CIR_INTLM:
  108.                         popup_select( link_box, LK_POP_INTLM, popup, POP_INTL, 0, -2, &ok );
  109.                         break;
  110.             case LK_TAS_CTRLM:
  111.             case LK_POP_CTRLM:
  112.                         popup_select( link_box, LK_POP_CTRLM, popup, POP_OMODE, 0, 0, &ok );
  113.                         break;
  114.             case LK_CIR_CTRLM:
  115.                         popup_select( link_box, LK_POP_CTRLM, popup, POP_OMODE, 0, -2, &ok );
  116.                         break;
  117.             case LK_TAS_OUTBM:
  118.             case LK_POP_OUTBM:
  119.                         popup_select( link_box, LK_POP_OUTBM, popup, POP_OUTBOUND, 0, 0, &ok );
  120.                         break;
  121.             case LK_CIR_OUTBM:
  122.                         popup_select( link_box, LK_POP_OUTBM, popup, POP_OUTBOUND, 0, -2, &ok );
  123.                         break;
  124.         }
  125.  
  126.     }
  127.     
  128.     ClearSelected( link_box, rc );
  129.     close_dial( FALSE, NULL, &di );
  130. }
  131.  
  132. /**-----------------------------------------------------------------------------
  133.  ** Funktionsname:    LOCAL VOID init_linklist( VOID )
  134.  **        ->    nichts
  135.  **        <-    nichts
  136.  **
  137.  ** Die Funktion initialisiert die Link-Listbox.
  138.  **/
  139. LOCAL VOID init_linklist( VOID )
  140. {
  141.     linklist.tree        = lklb_box;
  142.     linklist.itemlist    = links;
  143.     linklist.itemsize    = sizeof( LINK_STRUCT );
  144.     linklist.indirect    = 0;
  145.     linklist.num_items    = 0;
  146.     linklist.first_item    = 0;
  147.     linklist.active        = -1;
  148.     linklist.sel_state    = 1;
  149.     linklist.root        = LKROOT;
  150.     linklist.items        = LKITEMS;
  151.     linklist.up            = LKUP;
  152.     linklist.down        = LKDOWN;
  153.     linklist.parent        = LKPARENT;
  154.     linklist.slider        = LKSLIDER;
  155.     linklist.func        = NULL;
  156.  
  157.     listbox( &linklist, NULL, LIST_INIT );    
  158. }
  159.  
  160. /**-----------------------------------------------------------------------------
  161.  ** Funktionsname:    GLOBAL VOID reset_linkbox( VOID )
  162.  **        ->    nichts
  163.  **        <-    nichts
  164.  **
  165.  ** Die Funktion setzt die Linkbox zurück.
  166.  **/
  167. GLOBAL VOID reset_linkbox( VOID )
  168. {
  169.     WORD    i;
  170.     BYTE    *b_ptr;
  171.     
  172.     WORD    edits[] = {    LK_SYSOP, LK_PW, LK_AREAFIXPW, LK_GROUPS,
  173.                         LK_PASSIVEGRP, LK_PACKCMD, LK_AREACHAR, LK_DAREACHAR,
  174.                         LK_USEALIAS, LK_ALIASDOM, LK_AUTOCON, LK_REMOTEAF,
  175.                         LK_REMOTENM, LK_REMOTEPW, -1 },
  176.             checks[]= {    LK_PASSIVE, LK_EXTRANETM, LK_CRASHOK, LK_ROUTENETM,
  177.                         LK_NOROUTE, LK_FORCEINTL, LK_DUMMYPKT, LK_NONOTIFY,
  178.                         LK_NOREADDR, LK_FWDREQST, LK_AUTOAREA, LK_AUTODAREA, -1 },
  179.             pops[]  = {    LK_POP_ARCMODE, LK_POP_PKTTP, LK_POP_NETMT,
  180.                         LK_POP_ECHOT, LK_POP_INTLM, LK_POP_CTRLM, LK_POP_OUTBM, -1 },
  181.             adrs[]    = {    AKA1, AKADOM1, AKAF1, AKAGRP1,
  182.                         AKA2, AKADOM2, AKAF2, AKAGRP2,
  183.                         AKA3, AKADOM3, AKAF3, AKAGRP3,
  184.                         AKA4, AKADOM4, AKAF4, AKAGRP4,
  185.                         AKA5, AKADOM5, AKAF5, AKAGRP5, -1 };
  186.  
  187.     BYTE    *stdt[] = {    "  ZIPmail",
  188.                         "  FSC0039",
  189.                         "  4D",
  190.                         "  4D",
  191.                         "  3D",
  192.                         "  2D",
  193.                         "  5D" };
  194.  
  195.     i=0;
  196.     while( edits[i] != -1 )
  197.     {
  198.         b_ptr = link_box[edits[i]].ob_spec.tedinfo->te_ptext;
  199.         *b_ptr = '\0';
  200.         ++i;
  201.     }
  202.  
  203.     i=0;
  204.     while( checks[i] != -1 )
  205.     {
  206.         link_box[checks[i]].ob_state &= ~SELECTED;
  207.         ++i;
  208.     }
  209.     
  210.     i=0;
  211.     while( pops[i] != -1 )
  212.     {
  213.         set_ptext( link_box, pops[i], stdt[i] );
  214.         ++i;
  215.     }
  216.  
  217.     i=0;        
  218.     while( adrs[i] != -1 )
  219.     {
  220.         b_ptr = akas_box[adrs[i]].ob_spec.tedinfo->te_ptext;
  221.         *b_ptr = '\0';
  222.         b_ptr = raka_box[adrs[i]].ob_spec.tedinfo->te_ptext;
  223.         *b_ptr = '\0';
  224.         ++i;
  225.     }
  226. }
  227.  
  228. /**-----------------------------------------------------------------------------
  229.  ** Funktionsname:    LOCAL VOID ClearSelected( OBJECT *tree, WORD object )
  230.  **        ->    Tree und Objektnummer
  231.  **        <-    nichts
  232.  **
  233.  ** Die Funktion löscht den SELECTED-Status eines Objekts.
  234.  **/
  235. LOCAL VOID ClearSelected( OBJECT *tree, WORD object )
  236. {
  237.     tree[object].ob_state &= 0xFFFE;
  238. }
  239.