From: "Damian Yerrick" Newsgroups: comp.os.msdos.djgpp Subject: Re: Mouse Events Problem Date: Tue, 19 Oct 1999 18:31:51 -0500 Organization: Rose-Hulman Institute of Technology Lines: 43 Sender: AFSAUTH AT 137 DOT 112 DOT 205 DOT 146 Message-ID: <7uiv4d$6bq$1@solomon.cs.rose-hulman.edu> References: <7uitf2$qor$1 AT news8 DOT svr DOT pol DOT co DOT uk> NNTP-Posting-Host: 137.112.205.146 X-Trace: solomon.cs.rose-hulman.edu 940376013 6522 137.112.205.146 (19 Oct 1999 23:33:33 GMT) X-Complaints-To: news AT cs DOT rose-hulman DOT edu NNTP-Posting-Date: 19 Oct 1999 23:33:33 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2314.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hammy wrote in message news:7uitf2$qor$1 AT news8 DOT svr DOT pol DOT co DOT uk... > Probably not the best newsgroup but heres my problem. > Im trying to write an event manager for a mouse. The idea > I have so far is this: i have created a structure that holds the > coordinates of rectangles for which a mouse can click in a > trigger an event. Also in the struct I have a byte for the button Limit yourself to 128 buttons on screen? I'd use an int. > that triggers the event, a byte for if the rectangle is active, > and a pointer to a function(the code that is run when event is > triggered). So it'd look like this: typedef struct ClickRect { struct ClickRect *prev; struct ClickRect *next; int (*triggerFunc)(int, int); int buttonID; char active; } ClickRect; > I have this structure as a linked list and have ordered it in > active/disable, now, i can image this being rather slow the more events i > have. So, does anyone know of the a better way to do this? qsort() the rectangles by top coordinate and use a bsearch(). hope this helps -- Damian Yerrick CM 398, Rose-Hulman Institute of Technology 5500 Wabash Ave Terre Haute, IN 47803 http://come.to/yerrick