delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/10/19/21:56:14

From: "Damian Yerrick" <web DOT poison AT pineight DOT 8m DOT com>
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 <darren AT grayce DOT freeserve DOT co DOT uk> 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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019