home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma45.dms
/
ma45.adf
/
Listingi
/
MagazynAMIGA4
/
KursC-11.c
< prev
next >
Wrap
C/C++ Source or Header
|
2002-10-23
|
3KB
|
101 lines
/* Listing #11 */
#include <proto/exec.h>
#include <proto/gadtools.h>
#include <proto/intuition.h>
#include <stdio.h>
struct IntuitionBase *IntuitionBase;
struct Library *GadToolsBase;
struct NewMenu tabnm[]=
{
{NM_TITLE, "Projekt"},
{NM_ITEM, "Otw¢rz...", "O", 0, 0, "Otwarcie pliku"},
{NM_ITEM, NM_BARLABEL},
{NM_ITEM, "Zapisz", "S", 0, 0, "Zapis pliku"},
{NM_ITEM, "Zapisz jako...", "A", 0, 0, "Zapis pliku pod now¥ nazw¥"},
{NM_ITEM, NM_BARLABEL},
{NM_ITEM, "Skoäcz", "Q", 0, 0, "Wyjcie z programu"},
{NM_TITLE, "Edycja"},
{NM_ITEM, "Tryb"},
{NM_SUB, "Wstawianie", "W", CHECKIT | CHECKED, 2, "Tryb wstawiania"},
{NM_SUB, "Nadpisywanie", "N", CHECKIT, 1, "Tryb nadpisywania"},
{NM_ITEM, NM_BARLABEL},
{NM_ITEM, "Zwyky", "P", CHECKIT | CHECKED, 8|16|32, "\033[0mKr¢j zwyky"},
{NM_ITEM, "Wytuszczony", "B", CHECKIT, 4, "\033[1mKr¢j wytuszczony"},
{NM_ITEM, "Kursywa", "I", CHECKIT, 4, "\033[3mKr¢j pochylony"},
{NM_ITEM, "Podkrelony", "U", CHECKIT, 4, "\033[4mKr¢j podkrelony"},
NM_END
};
struct Menu *menu;
struct Screen *pubscr;
void *vi;
struct Window *okno;
int main(int argc, char *argv[])
{
check_os(OS_20);
IntuitionBase=(struct IntuitionBase*)OpenLibrary("intuition.library", 37);
GadToolsBase=OpenLibrary("gadtools.library", 37);
if (menu=CreateMenusA(tabnm, 0))
{
if (pubscr=LockPubScreen(0))
{
if (vi=GetVisualInfoA(pubscr, 0))
{
LayoutMenus(menu, vi, GTMN_NewLookMenus, TRUE, TAG_DONE);
if (okno=OpenWindowTags(0,
WA_Height, pubscr->Height/2,
WA_Flags, WFLG_DRAGBAR | WFLG_CLOSEGADGET | WFLG_DEPTHGADGET | WFLG_ACTIVATE,
WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_MENUPICK,
WA_NewLookMenus, TRUE,
WA_PubScreen, pubscr,
TAG_DONE))
{
char koniec=0;
SetMenuStrip(okno, menu);
for (; !koniec;)
{
struct IntuiMessage *msg;
WaitPort(okno->UserPort);
if (msg=(struct IntuiMessage*)GetMsg(okno->UserPort))
{
ULONG Clas=msg->Class;
UWORD Code=msg->Code;
ReplyMsg((struct Message*)msg);
switch (Clas)
{
case IDCMP_CLOSEWINDOW:
koniec=1;
break;
case IDCMP_MENUPICK:
while (Code!=MENUNULL)
{
struct MenuItem *item=ItemAddress(menu, Code);
printf("%s\n", GTMENUITEM_USERDATA(item));
if (Code==FULLMENUNUM(0, 5, NOSUB))
/* Pozycja "Skoäcz" */
koniec=1;
Code=item->NextSelect;
}
}
}
}
printf("Tryb wstawiania %sjest w¥czony\n", (ItemAddress(menu, FULLMENUNUM(1, 0, 0))->Flags & CHECKED) ? "" : "nie ");
ClearMenuStrip(okno);
CloseWindow(okno);
}
FreeVisualInfo(vi);
}
UnlockPubScreen(0, pubscr);
}
FreeMenus(menu);
}
CloseLibrary(GadToolsBase);
CloseLibrary((struct Library*)IntuitionBase);
return 0;
}