<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>MOUSE question</title>
		<link>http://www.allegro.cc/forums/view/618815</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 30 Apr 2023 00:52:06 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi all:<br />  I have a question concerning the use of the mouse.<br />I have a yellow rectangle at the bottom of the screen.<br />I have an image showing in the middle of the screen.</p><p>  What I want to do is click inside the yellow rectangle on the left side,<br />move the mouse to the right to make the image larger, move the mouse back<br />to the left to make the image smaller. Is this even possible using Allegro5?<br />I hope my explanation is clear. Thanks for your time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Mon, 24 Apr 2023 19:18:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Scooter</p><p>I’m assuming you know the correct commands of A5 so I’ll paraphrase what I would do.  Keep in mind I’m a novice with A5 so some of the others might give a more concise way of doing this.  <br />I’m also assuming you already have the smaller image drawn as a default size.  </p><p>int pos_x = 0;<br />int pos_y = 0;<br />bool Img_Size = false; // default smaller size</p><p>//With in the program while loop</p><p>// I would record mouse position.<br />if(event.type == ALLEGRO_EVENT_MOUSE_AXES)<br />    {<br />      pos_y = event.mouse.y;<br />      pos_x = event.mouse.x;<br />    } // end mouse axis</p><p>// Then I would react when button pressed. </p><p>   if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN){     // The pos_X &amp; Y are coordinates from a program I’m writing.  You would use yours of course. </p><p>      		  if(pos_x &gt;= 180 &amp;&amp; pos_y &gt;= 240){                         // Confirming I’m within the upper left hand corner of the “Large Image” section of the yellow rectangle. <br />    			  if(pos_x &lt;= 290 &amp;&amp; pos_y&lt;= 280){            // And that I’m within lower right hand corner of the “Large Image” section of the yellow rectangle. <br />    				Img_Size = true;<br />    			}}// end location if</p><p>    		  if (pos_x &gt;= 440 &amp;&amp; pos_y &gt;= 240){                       // Confirming I’m within the upper left hand corner of the “Small Image” section of the yellow rectangle. <br />        			  if(pos_x &lt;= 560 &amp;&amp; pos_y&lt;= 280){          // And that I’m within lower right hand corner of the “Smaller Image” section of the yellow rectangle. <br />        				Img_Size = false;<br />        			}}// end location if<br />           	}// end button down</p><p>// Then draw specific image based on Img_Size</p><p>if( Img_Size == true)<br /> al_draw_bitmap(lrg_bmp, x, y, 0);</p><p>if( Img_Size == false)<br /> al_draw_bitmap(small_bmp, x, y, 0);</p><p>Let me know if I’ve misunderstood your question.   Good Luck.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Mon, 24 Apr 2023 20:31:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks AceBlkwell for your quick reply.<br />  Looks like we both are in the same boat. I also am not an expert but I do<br />enjoy programming. Great post. That is real close to what I have now. I can<br />click anywhere in the yellow rectangle and the image will respond.<br />  What I would like to do now is click in the left side of the rectangle,<br />hold the left mouse button down, move the mouse to the right and the image gets<br />larger in real time. Still holding the mouse button down, move the mouse to the<br />left and the image gets smaller in real time. My question is if this is possible<br />to do in allegro5.<br />Have a great day!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Mon, 24 Apr 2023 21:40:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Scooter, </p><p>I enjoy programming as well.  I usually decide to program something just to see if I can do it.  Most of my programming is never seen by anyone but me.</p><p>In any case, sounds like you are asking about real time scaling. And that is well above my abilities.  Like you, I&#39;m not sure Allegro has that capability. Maybe one of the site experts might chime in. </p><p>Good luck and keep me updated on how it turns out.</p><p>BTW I found these doing a quick check...<br />al_draw_scaled_bitmap  <br />&amp;<br /><a href="https://www.youtube.com/watch?v=vkWivB3aCAo">https://www.youtube.com/watch?v=vkWivB3aCAo</a>  Rotating, Scaling and Tinting BMP in Allegro 5
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Mon, 24 Apr 2023 22:50:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>something like this. if only one rect, don&#39;t need the index var</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">// need some extra vars</span>
<span class="number">  2</span><span class="k1">bool</span> isGrabbed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">int</span> indexOfGrabbedRect <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="c">// if event mouse down and in corner of rect</span>
<span class="number">  6</span>isGrabbed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  7</span>indexOfGrabbedRect <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="c">// is event mouse moved and isGrabbed == true</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/rect"><span class="a">rect</span></a><span class="k2">[</span>indexOfGrabbedRect<span class="k2">]</span>.x1 <span class="k3">=</span> mousex<span class="k2">;</span>
<span class="number"> 11</span><a href="http://www.allegro.cc/manual/rect"><span class="a">rect</span></a><span class="k2">[</span>indexOfGrabbedRect<span class="k2">]</span>.y1 <span class="k3">=</span> mousey<span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="c">//if event mouse up</span>
<span class="number"> 14</span>isGrabbed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 15</span>indexOfGrabbedRect <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Mon, 24 Apr 2023 23:37:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks AceBlkwell:<br />  That is exactly the function I am using.<br />Here is the code that does the trick:</p><p>    pos_x = ev.mouse.x;   // get mouse x position<br />    pos_y = ev.mouse.y;   // get mouse y position<br />    //     al_set_mouse_xy(display, pos_x, pos_y);<br />    image_height = al_get_bitmap_height(image);<br />    image_width = al_get_bitmap_width(image);<br />    al_clear_to_color(al_map_rgb(0,0,0));<br />    draw_work_area();</p><p>    scale_factor = working_screen_height / image_height;<br />    dist = pos_x - 1030; // 1030 is the distance to left edge of rectangle<br />    scale_factor = scale_factor * (dist / 125);<br />    al_draw_scaled_bitmap(image,<br />       0, 0, image_width, image_height,<br />       (screen_width - (scale_factor * image_width)) / 2.0,           // x position<br />       ((working_screen_height - scale_factor * image_height) / 2.0), // y position<br />       image_width * scale_factor, image_height * scale_factor, 0);<br />       al_flip_display();</p><p>I am going to redo some of the code to see if I can figure this out.<br />I will keep you posted!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Mon, 24 Apr 2023 23:46:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nice Scooter.  You&#39;ll have to upload the finished program so I can see it in action.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Tue, 25 Apr 2023 00:15:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>AceBlkwell:</p><p>  Sorry, could not work it out.<br />Can move the mouse when in the rectangle<br />and mouse coordinates will change like they<br />should but image does not change.<br />Probably screwed up events. Don&#39;t even<br />know if it is possible using Allegro.<br />Have a great day!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Sat, 29 Apr 2023 19:18:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you can draw a rectangle with allegro, it is possible. :/</p><p>Think about it in psuedocode. What do you need data wise? You need the mouse coordinates, you need the original rectangle and the new rectangle.</p><p>If you get a mouse button down event, check if it is over the edge of the rectangle. If so, you&#39;re now dragging the rectangle. drag = true;</p><p>If you get a mouse button up event, drag = false, and you should &#39;let go&#39; of the rectangle and save its last position as the original.</p><p>If you get a mouse axes event, check if you are dragging (drag == true) and if so, update the rectangle position.</p><p>If you really need the scale, calculate it from the two rectangles.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 29 Apr 2023 20:29:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s perfectly possible with Allegro5!!</p><p>Attached is an example program (tested on Windows), and the source code:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> bool_string<span class="k2">(</span><span class="k1">bool</span> value<span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  13</span><span class="k2">{</span>
<span class="number">  14</span>    <a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>    <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>    <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>
<span class="number">  20</span>    <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED<span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">1280</span>, <span class="n">720</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span>
<span class="number">  23</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> image <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"test_image.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span>    
<span class="number">  25</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"arial.ttf"</span>, <span class="n">14</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> redraw_timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>    <a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>redraw_timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>
<span class="number">  38</span>    <span class="k1">int</span> resize_box_x1 <span class="k3">=</span> <span class="n">560</span><span class="k2">;</span>
<span class="number">  39</span>    <span class="k1">int</span> resize_box_y1 <span class="k3">=</span> <span class="n">540</span><span class="k2">;</span>
<span class="number">  40</span>    <span class="k1">int</span> resize_box_x2 <span class="k3">=</span> <span class="n">720</span><span class="k2">;</span>
<span class="number">  41</span>    <span class="k1">int</span> resize_box_y2 <span class="k3">=</span> <span class="n">620</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>    <span class="k1">float</span> image_size <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span>    <span class="k1">int</span> image_w <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>    <span class="k1">int</span> image_h <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span>    <span class="k1">int</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  48</span>    <span class="k1">int</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  49</span>
<span class="number">  50</span>    <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  52</span>    <span class="k1">bool</span> mouse_down <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  53</span>    <span class="k1">bool</span> mouse_in_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  54</span>    <span class="k1">bool</span> resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span>    <span class="k1">char</span> text_string<span class="k2">[</span><span class="n">50</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</span>    <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>redraw_timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>    
<span class="number">  60</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  61</span>    <span class="k2">{</span>
<span class="number">  62</span>        <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>
<span class="number">  64</span>        <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number">  65</span>        <span class="k2">{</span>
<span class="number">  66</span>            done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  67</span>        <span class="k2">}</span>
<span class="number">  68</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  69</span>        <span class="k2">{</span>
<span class="number">  70</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span><span class="k3">=</span> resize_box_x1 <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span><span class="k3">=</span> resize_box_x2<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span><span class="k3">=</span> resize_box_y1 <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span><span class="k3">=</span> resize_box_y2<span class="k2">)</span><span class="k2">)</span>
<span class="number">  73</span>            <span class="k2">{</span>
<span class="number">  74</span>                mouse_in_box <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  75</span>            <span class="k2">}</span>
<span class="number">  76</span>            <span class="k1">else</span>
<span class="number">  77</span>            <span class="k2">{</span>
<span class="number">  78</span>                mouse_in_box <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  79</span>                resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  80</span>            <span class="k2">}</span>
<span class="number">  81</span>        <span class="k2">}</span>
<span class="number">  82</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  83</span>        <span class="k2">{</span>
<span class="number">  84</span>            mouse_down <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  85</span>
<span class="number">  86</span>            <span class="k1">if</span> <span class="k2">(</span>mouse_in_box<span class="k2">)</span>
<span class="number">  87</span>            <span class="k2">{</span>
<span class="number">  88</span>                resizing <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  89</span>            <span class="k2">}</span>
<span class="number">  90</span>            <span class="k1">else</span>
<span class="number">  91</span>            <span class="k2">{</span>
<span class="number">  92</span>                resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  93</span>            <span class="k2">}</span>
<span class="number">  94</span>        <span class="k2">}</span>
<span class="number">  95</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  96</span>        <span class="k2">{</span>
<span class="number">  97</span>            mouse_down <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  98</span>
<span class="number">  99</span>            resizing <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 100</span>        <span class="k2">}</span>
<span class="number"> 101</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 102</span>        <span class="k2">{</span>
<span class="number"> 103</span>            <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number"> 104</span>            <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 105</span>
<span class="number"> 106</span>            <span class="k1">if</span> <span class="k2">(</span>resizing<span class="k2">)</span>
<span class="number"> 107</span>            <span class="k2">{</span>
<span class="number"> 108</span>                image_size <span class="k3">+</span><span class="k3">=</span> ev.mouse.dx <span class="k3">*</span> <span class="n">0</span>.<span class="n">01</span><span class="k2">;</span>               
<span class="number"> 109</span>            <span class="k2">}</span>
<span class="number"> 110</span>
<span class="number"> 111</span>            <span class="k1">if</span> <span class="k2">(</span>image_size <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 112</span>            <span class="k2">{</span>
<span class="number"> 113</span>                image_size <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 114</span>            <span class="k2">}</span>
<span class="number"> 115</span>        <span class="k2">}</span>
<span class="number"> 116</span>
<span class="number"> 117</span>        <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span>
<span class="number"> 118</span>        <span class="k2">{</span>
<span class="number"> 119</span>            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>
<span class="number"> 121</span>            <a href="http://www.allegro.cc/manual/al_draw_scaled_bitmap"><span class="a">al_draw_scaled_bitmap</span></a><span class="k2">(</span>image, <span class="n">0</span>, <span class="n">0</span>, image_w, image_h, <span class="n">640</span> <span class="k3">-</span> <span class="k2">(</span><span class="k2">(</span>image_w <span class="k3">*</span> image_size<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span>, <span class="n">260</span> <span class="k3">-</span> <span class="k2">(</span><span class="k2">(</span>image_h <span class="k3">*</span> image_size<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span>, image_w <span class="k3">*</span> image_size, image_h <span class="k3">*</span> image_size, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>
<span class="number"> 123</span>            <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>resize_box_x1, resize_box_y1, resize_box_x2, resize_box_y2, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>
<span class="number"> 125</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Mouse Down: %s"</span>, bool_string<span class="k2">(</span>mouse_down<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">10</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Mouse X: %d"</span>, <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">30</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Mouse Y: %d"</span>, <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">50</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Mouse in box: %s"</span>, bool_string<span class="k2">(</span>mouse_in_box<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">70</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Resizing: %s"</span>, bool_string<span class="k2">(</span>resizing<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">90</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>            sprintf_s<span class="k2">(</span>text_string, <span class="s">"Image size/scale: %f"</span>, image_size<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span>            <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">110</span>, <span class="n">0</span>, text_string<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>
<span class="number"> 138</span>            <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 140</span>        <span class="k2">}</span>
<span class="number"> 141</span>    <span class="k2">}</span>
<span class="number"> 142</span>
<span class="number"> 143</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 144</span>    <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>    <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>    <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span><span class="k2">}</span>
<span class="number"> 148</span>
<span class="number"> 149</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> bool_string<span class="k2">(</span><span class="k1">bool</span> value<span class="k2">)</span>
<span class="number"> 150</span><span class="k2">{</span>
<span class="number"> 151</span>    <span class="k1">return</span> value ? <span class="s">"True"</span> <span class="k2">:</span> <span class="s">"False"</span><span class="k2">;</span>
<span class="number"> 152</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Sat, 29 Apr 2023 20:41:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Edgar and Dizzy<br />  This is exactly what I was trying to do.<br />I had everything right except the events part.<br />I could pick inside the rectangle and the image<br />would appear correctly. When I clicked inside the<br />the rectangle and moved the mouse nothing would happen.</p><p>Dizzy:<br />  I had to modify your program to work on Linux.<br />Worked perfectly. Great job!</p><p>Thanks to both of you for helping me on this!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Sun, 30 Apr 2023 00:52:06 +0000</pubDate>
	</item>
</rss>
