ecxtlacitka.png (2658 bytes) Ecx EcxDocs EcxMUI EcxExamples Back to Amiga E home page
/* AmigaE OpenWindowTagList typ2 dispatcher ghh 2024 */
/* tagy pro OpenWindowTagList jsou ve strukture wintags -> tagitem */

MODULE 'intuition/intuition'
MODULE 'utility/tagitem'

PROC main()
  DEF win:PTR TO window
  DEF wintags:PTR TO tagitem
  DEF class
  DEF imess:PTR TO intuimessage
  DEF quit
                                   /* taglist je v hranatych zavorkach */
  wintags:= [WA_Left,   10,        /* pozice X */
             WA_Top,    14,        /* pozice Y */
             WA_Width,  320,       /* sirka */
             WA_Height, 160,       /* vyska */

             WA_CloseGadget, TRUE, /* gadget zavreni okna */
             WA_DragBar,     TRUE, /* okno se da uchopit a pretahnout */
             WA_DepthGadget, TRUE, /* gadget prepinani oken vpred-vzad */
             WA_SizeBBottom, TRUE, /* dolni lista okna */
             WA_SizeGadget,  TRUE, /* gadget zmeny velikosti */

             WA_IDCMP, IDCMP_CLOSEWINDOW,       /* okno lze zavrit gadgetem (Intuition IDCMP) */
             WA_Title, 'OpenWindowTagListTyp2', /* titulek na liste okna */
             WA_MinWidth, 100,                  /* minimalni sirka okna */
             WA_MinHeight, 50,                  /* minimalni vyska okna */
             WA_MaxWidth,  -1,                  /* maximalni sirka -1 = neomezene */
             WA_MaxHeight, -1,                  /* maximalni vyska -1 = neomezene */
             WA_Activate, TRUE,                 /* okno bude aktivni pri spusteni */
             TAG_DONE, 0]                       /* konec taglistu */

  win:= OpenWindowTagList(NIL,wintags)

  quit:= FALSE
  WHILE quit = FALSE                       /* smycka bezi dokud neobdrzi pokyn (quit:= TRUE) */
    class:= NIL
    IF imess:= GetMsg(win.userport)        /* prijima zpravu z msg portu okna */
      class:= imess.class                  /* imess.class - podle toho co je nastaveno v WA_IDCMP */
      SELECT class                         /* podle obsahu zpravy se provede akce */

        CASE IDCMP_CLOSEWINDOW             /* pokud zprava obsahuje pokyn k zavreni okna */
          quit:= TRUE                      /* tak prerusit smycku */

      ENDSELECT

      ReplyMsg(imess)                      /* odesle odpoved na svuj port */

    ELSE
      WaitPort(win.userport)               /* ceka na zpravu z msg portu okna */
    ENDIF
  ENDWHILE                                 /* konec smycky */

  CloseWindow(win)  /* zavre okno az se prerusi smycka */

ENDPROC
ghh don'tpanic