<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[a5] drag your window with ALLEGRO_NOFRAME</title>
		<link>http://www.allegro.cc/forums/view/604376</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 19 Jun 2010 22:20:20 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So, I&#39;m just having some fun here trying to make a window dragable without a frame.  Basically, I came up with this simple little technique that actually works, but it&#39;s buggy.  I can&#39;t identify exactly what causes window to go crazy all over the screen and then fly off somewhere.</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="k1">case</span> ALLEGRO_EVENT_MOUSE_AXES:
<span class="number">  2</span>        <span class="k1">if</span> <span class="k2">(</span>mouse.dragging<span class="k2">)</span>
<span class="number">  3</span>        <span class="k2">{</span>
<span class="number">  4</span>          <span class="k1">int</span> x, y<span class="k2">;</span>
<span class="number">  5</span>          al_get_window_position<span class="k2">(</span>display, <span class="k3">&amp;</span>x, <span class="k3">&amp;</span>y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>          al_set_window_position<span class="k2">(</span>display, x<span class="k3">+</span>al_event.mouse.dx, y<span class="k3">+</span>al_event.mouse.dy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>          al_set_mouse_xy<span class="k2">(</span>al_event.mouse.x <span class="k3">-</span> al_event.mouse.dx, al_event.mouse.y <span class="k3">-</span> al_event.mouse.dy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>        <span class="k2">}</span>
<span class="number">  9</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN:
<span class="number"> 11</span>        mouse.start_drag<span class="k2">(</span>al_event.mouse.x, al_event.mouse.y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 13</span>      <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP:
<span class="number"> 14</span>        mouse.end_drag<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>        <span class="k1">break</span><span class="k2">;</span>
</div></div><p>

<span class="remote-thumbnail"><span class="json">{"name":"601614","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/5\/0530a1dd5f460554bbb00a122c097603.png","w":1200,"h":900,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/5\/0530a1dd5f460554bbb00a122c097603"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/0/5/0530a1dd5f460554bbb00a122c097603-240.jpg" alt="601614" width="240" height="180" /></span></p><p>I&#39;m surprised it works as well as it does, but it doesn&#39;t retain the position of the mouse inside the window (as well as sometimes just flipping out all together.) In the screenshot, the window has been dragged around a bit and you&#39;ll notice the red cross hair (drag start) and green cross hair (current mouse position) have different locations.  The actual mouse cursor is not visible in the screenshot.  This isn&#39;t a regular transformation - sometimes they&#39;ll still overlap when dragging, and sometimes they won&#39;t.  Sometimes the window will flip out on a drag with slow mouse movement, other times it&#39;s with quick mouse movements.</p><p>I tried some other methods like setting <span class="source-code">al_set_mouse_xy<span class="k2">(</span><span class="k2">)</span></span> to the same mouse position when the drag began, but that would only aggravate the window flip outs more.  Don&#39;t know why.</p><p>Here&#39;s a complete example (with a few extra lines of code that aren&#39;t used) if you wanna try it out.  I&#39;ve attached an MSVC build for Windows, too.  Click-drag to drag the window.  Press an any key to quit.  You may have to hard-close it if it flies off the screen.</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="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_color.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_audio.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_vorbis.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro_opengl.h&gt;</span>
<span class="number">  11</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  14</span><span class="k1">using</span> std::cout<span class="k2">;</span>
<span class="number">  15</span><span class="k1">using</span> std::endl<span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span>
<span class="number">  18</span>
<span class="number">  19</span>
<span class="number">  20</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">class</span> Mouse
<span class="number">  23</span><span class="k2">{</span>
<span class="number">  24</span>public:
<span class="number">  25</span>  <span class="k1">bool</span> dragging<span class="k2">;</span>
<span class="number">  26</span>  <span class="k1">int</span> drag_start_x<span class="k2">;</span>
<span class="number">  27</span>  <span class="k1">int</span> drag_start_y<span class="k2">;</span>
<span class="number">  28</span>  <span class="k1">int</span> drag_offset_x<span class="k2">;</span>
<span class="number">  29</span>  <span class="k1">int</span> drag_offset_y<span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>  <span class="k1">int</span> x<span class="k2">;</span>
<span class="number">  32</span>  <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span>  Mouse<span class="k2">(</span><span class="k2">)</span><span class="k2">:</span>dragging<span class="k2">(</span><span class="k1">false</span><span class="k2">)</span>, drag_start_x<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>, drag_start_y<span class="k2">(</span><span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k2">}</span>
<span class="number">  35</span>
<span class="number">  36</span>  <span class="k1">void</span> start_drag<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span>
<span class="number">  37</span>  <span class="k2">{</span>
<span class="number">  38</span>    drag_start_x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number">  39</span>    drag_start_y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number">  40</span>    this-&gt;x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number">  41</span>    this-&gt;y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number">  42</span>    dragging <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  43</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"starting drag"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  44</span>  <span class="k2">}</span>
<span class="number">  45</span>
<span class="number">  46</span>  <span class="k1">void</span> move_offset<span class="k2">(</span><span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span>
<span class="number">  47</span>  <span class="k2">{</span>
<span class="number">  48</span>    drag_offset_x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number">  49</span>    drag_offset_y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number">  50</span>  <span class="k2">}</span>
<span class="number">  51</span>
<span class="number">  52</span>  <span class="k1">void</span> end_drag<span class="k2">(</span><span class="k2">)</span>
<span class="number">  53</span>  <span class="k2">{</span>
<span class="number">  54</span>    dragging <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  55</span>    drag_start_x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  56</span>    drag_start_y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  57</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"ending drag"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number">  58</span>  <span class="k2">}</span>
<span class="number">  59</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span>
<span class="number">  62</span>
<span class="number">  63</span>
<span class="number">  64</span>
<span class="number">  65</span>
<span class="number">  66</span>
<span class="number">  67</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  68</span><span class="k2">{</span>
<span class="number">  69</span>  ALLEGRO_DISPLAY <span class="k3">*</span>display<span class="k2">;</span>
<span class="number">  70</span>  ALLEGRO_EVENT_QUEUE <span class="k3">*</span>queue<span class="k2">;</span>
<span class="number">  71</span>
<span class="number">  72</span>  al_init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>
<span class="number">  74</span>  al_set_new_display_flags<span class="k2">(</span>ALLEGRO_NOFRAME<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>  display <span class="k3">=</span> al_create_display<span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>
<span class="number">  77</span>  al_install_keyboard<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>  al_install_mouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>  al_install_joystick<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>
<span class="number">  81</span>  <span class="c">/* setup event queue */</span>
<span class="number">  82</span>
<span class="number">  83</span>  queue <span class="k3">=</span> al_create_event_queue<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>
<span class="number">  85</span>  ALLEGRO_EVENT_SOURCE <span class="k3">*</span>display_source <span class="k3">=</span> al_get_display_event_source<span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  al_register_event_source<span class="k2">(</span>queue, display_source<span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</span>  ALLEGRO_EVENT_SOURCE <span class="k3">*</span>keyboard_event_source <span class="k3">=</span> al_get_keyboard_event_source<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>  al_register_event_source<span class="k2">(</span>queue, keyboard_event_source<span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>
<span class="number">  91</span>  ALLEGRO_EVENT_SOURCE <span class="k3">*</span>mouse_event_source <span class="k3">=</span> al_get_mouse_event_source<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  al_register_event_source<span class="k2">(</span>queue, mouse_event_source<span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>
<span class="number">  94</span>  ALLEGRO_TIMER <span class="k3">*</span>timer <span class="k3">=</span> al_install_timer<span class="k2">(</span>ALLEGRO_BPS_TO_SECS<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>  ALLEGRO_EVENT_SOURCE <span class="k3">*</span>timer_event_source <span class="k3">=</span> al_get_timer_event_source<span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>  al_register_event_source<span class="k2">(</span>queue, timer_event_source<span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>
<span class="number">  98</span>  al_start_timer<span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>
<span class="number"> 100</span>  <span class="k1">bool</span> game_over <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 101</span>
<span class="number"> 102</span>
<span class="number"> 103</span>  Mouse mouse<span class="k2">;</span>
<span class="number"> 104</span>
<span class="number"> 105</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>game_over<span class="k2">)</span>
<span class="number"> 106</span>  <span class="k2">{</span>
<span class="number"> 107</span>    ALLEGRO_EVENT al_event<span class="k2">;</span>
<span class="number"> 108</span>    al_wait_for_event<span class="k2">(</span>queue, <span class="k3">&amp;</span>al_event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>
<span class="number"> 110</span>    <span class="k1">switch</span><span class="k2">(</span>al_event.type<span class="k2">)</span>
<span class="number"> 111</span>    <span class="k2">{</span>
<span class="number"> 112</span>      <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_AXES:
<span class="number"> 113</span>        <span class="k1">if</span> <span class="k2">(</span>mouse.dragging<span class="k2">)</span>
<span class="number"> 114</span>        <span class="k2">{</span>
<span class="number"> 115</span>          <span class="k1">int</span> x, y<span class="k2">;</span>
<span class="number"> 116</span>          al_get_window_position<span class="k2">(</span>display, <span class="k3">&amp;</span>x, <span class="k3">&amp;</span>y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>          al_set_window_position<span class="k2">(</span>display, x<span class="k3">+</span>al_event.mouse.dx, y<span class="k3">+</span>al_event.mouse.dy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>          al_set_mouse_xy<span class="k2">(</span>al_event.mouse.x <span class="k3">-</span> al_event.mouse.dx, al_event.mouse.y <span class="k3">-</span> al_event.mouse.dy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>          mouse.x <span class="k3">=</span> al_event.mouse.x <span class="k3">-</span> al_event.mouse.dx<span class="k2">;</span>
<span class="number"> 120</span>          mouse.y <span class="k3">=</span> al_event.mouse.y <span class="k3">-</span> al_event.mouse.dy<span class="k2">;</span>
<span class="number"> 121</span>        <span class="k2">}</span>
<span class="number"> 122</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 123</span>      <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN:
<span class="number"> 124</span>        mouse.start_drag<span class="k2">(</span>al_event.mouse.x, al_event.mouse.y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 126</span>      <span class="k1">case</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP:
<span class="number"> 127</span>        mouse.end_drag<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 129</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 130</span>        game_over <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 131</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 132</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 133</span>        al_clear_to_color<span class="k2">(</span>al_color_name<span class="k2">(</span><span class="s">"black"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>        <span class="k1">if</span> <span class="k2">(</span>mouse.dragging<span class="k2">)</span>
<span class="number"> 135</span>        <span class="k2">{</span>
<span class="number"> 136</span>          al_draw_line<span class="k2">(</span>mouse.drag_start_x-10, mouse.drag_start_y, mouse.drag_start_x<span class="k3">+</span><span class="n">10</span>, mouse.drag_start_y, al_color_name<span class="k2">(</span><span class="s">"red"</span><span class="k2">)</span>, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>          al_draw_line<span class="k2">(</span>mouse.drag_start_x, mouse.drag_start_y-10, mouse.drag_start_x, mouse.drag_start_y<span class="k3">+</span><span class="n">10</span>, al_color_name<span class="k2">(</span><span class="s">"red"</span><span class="k2">)</span>, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>          al_draw_line<span class="k2">(</span>mouse.x-10, mouse.y, mouse.x<span class="k3">+</span><span class="n">10</span>, mouse.y, al_color_name<span class="k2">(</span><span class="s">"green"</span><span class="k2">)</span>, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>          al_draw_line<span class="k2">(</span>mouse.x, mouse.y-10, mouse.x, mouse.y<span class="k3">+</span><span class="n">10</span>, al_color_name<span class="k2">(</span><span class="s">"green"</span><span class="k2">)</span>, <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>        <span class="k2">}</span>
<span class="number"> 141</span>        al_flip_display<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 143</span>      default:
<span class="number"> 144</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 145</span>    <span class="k2">}</span>
<span class="number"> 146</span>  <span class="k2">}</span>
<span class="number"> 147</span>
<span class="number"> 148</span>
<span class="number"> 149</span>
<span class="number"> 150</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 151</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 18 Jun 2010 22:37:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you look at how ex_noframe does it? It seems to work quite well at least under Linux. [edit: yours doesn&#39;t seem to work at all in linux, on the other hand]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Fri, 18 Jun 2010 22:44:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/870925#target">Elias</a> said:</div><div class="quote"><p>Did you look at how ex_noframe does it?</p></div></div><p>oooahhhmmmmm... let&#39;s see...</p><p><span class="source-code">al_get_mouse_cursor_position<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span></p><p>I was <i>looking</i> for a function that did that... I was so close. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>[edit]Any chance we&#39;ll get support for a frameless window with an alpha channel? <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 18 Jun 2010 23:08:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/870937#target">Mark Oates</a> said:</div><div class="quote"><p>
Any chance we&#39;ll get support for a frameless window with an alpha channel?
</p></div></div><p>

Yes, I want that. I think in the API we basically support it already, just nobody has sent a patch implementing it for any platform yet.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Sat, 19 Jun 2010 01:50:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As far as the flip-outs go, my best guess would be when you move the window, more mouse movement events are fired, giving you wonky coordinates, causing it to go ape<span class="cuss"><span>shit</span></span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sat, 19 Jun 2010 04:07:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A frameless window with alpha would be nice, as I&#39;ve set my base gui to allow for rectangular, triangular, and circular/elliptical windows but have only implemented the rectangular at the moment.</p><p>WG
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (wiseguy)</author>
		<pubDate>Sat, 19 Jun 2010 05:26:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/870937#target">Mark Oates</a> said:</div><div class="quote"><p>Any chance we&#39;ll get support for a frameless window with an alpha channel? <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p></div></div><p>
Only with the caveat that we may not be able to provide that functionality on all supported platforms (I don&#39;t think we can, someone correct me if I&#39;m wrong).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sat, 19 Jun 2010 19:33:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Probably work on Mac, Windows, and Linux, I imagine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sat, 19 Jun 2010 19:35:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Should be easy for Linux/X11 (if supported by your window manager, which is probably only the case with a compositing window manager... but who is still using something else). We won&#39;t provide it for ios4 of course since even with the added multi-tasking it&#39;s one app at the screen at a time. I have no idea about Windows or OSX.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Sat, 19 Jun 2010 20:05:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/871088#target">Mark Oates</a> said:</div><div class="quote"><p>Probably work on Mac</p></div></div><p>
That&#39;ll depend on the version of OS X that is running, I imagine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sat, 19 Jun 2010 20:10:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/871091#target">Elias</a> said:</div><div class="quote"><p>I have no idea about Windows or OSX</p></div></div><p>I&#39;m sure it can be done in Windows.  I remember almost 10 years ago I did figured it out, and that was in Visual Basic.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sat, 19 Jun 2010 21:15:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/604376/871104#target">Mark Oates</a> said:</div><div class="quote"><p>I&#39;m sure it can be done in Windows.  I remember almost 10 years ago I did figured it out, and that was in Visual Basic.</p></div></div><p>Back then it was more likely just a window mask rather than an alpha channel.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 19 Jun 2010 21:23:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>True.  I remember it being 1 or 0 transparency.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sat, 19 Jun 2010 22:20:20 +0000</pubDate>
	</item>
</rss>
