2 Copyright 1995-2007, The AROS Development Team. All rights reserved.
3 Copyright 2001-2003, The MorphOS Development Team. All Rights Reserved.
6 Add a Intuition Notification.
9 #include <intuition/intuition.h>
11 #include "intuition_intern.h"
13 /*****************************************************************************
17 #include <proto/exec.h>
18 #include <proto/intuition.h>
19 #include <proto/utility.h>
21 AROS_LH1(IPTR
, StartScreenNotifyTagList
,
24 AROS_LHA(struct TagItem
*, tags
, A0
),
27 struct IntuitionBase
*, IntuitionBase
, 161, Intuition
)
30 Add Notifications to Intuitionn.
33 taglist - A OS4 Styled Taglist for
36 the value is private only a test against ZERO is allowed and means Failure
50 *****************************************************************************/
53 struct IntScreenNotify
*notify
;
55 notify
= (struct IntScreenNotify
*) AllocVec(sizeof(struct IntScreenNotify
), MEMF_CLEAR
);
59 notify
->port
= (struct MsgPort
*) GetTagData(SNA_MsgPort
, 0, tags
);
60 notify
->sigbit
= (BYTE
) GetTagData(SNA_SigBit
, 0, tags
);
61 notify
->sigtask
= (struct Task
*) GetTagData(SNA_SigTask
, 0, tags
);
62 notify
->flags
= (ULONG
) GetTagData(SNA_Notify
, 0, tags
);
63 notify
->userdata
= (IPTR
) GetTagData(SNA_UserData
, 0, tags
);
64 notify
->hook
= (struct Hook
*) GetTagData(SNA_Hook
, 0, tags
);
65 notify
->node
.ln_Pri
= (BYTE
) GetTagData(SNA_Priority
, 0, tags
);
66 notify
->pubname
= NULL
;
68 char *pubname
= (char *) GetTagData(SNA_PubName
, 0, tags
);
71 notify
->pubname
= AllocVec(strlen(pubname
) + 1, MEMF_CLEAR
);
74 strcpy(notify
->pubname
, pubname
);
84 ObtainSemaphore(&GetPrivIBase(IntuitionBase
)->ScreenNotificationListLock
);
85 Enqueue(&GetPrivIBase(IntuitionBase
)->ScreenNotificationList
, (struct Node
*) notify
);
86 ReleaseSemaphore(&GetPrivIBase(IntuitionBase
)->ScreenNotificationListLock
);
90 ReturnPtr ("StartScreenNotifyTagList", APTR
, notify
);
93 } /* StartScreenNotifyTagList */