<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-517959919414105718</id><updated>2012-03-20T04:17:54.601-07:00</updated><title type='text'>Amaury Medeiros</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-1740325937605942968</id><published>2011-08-06T17:19:00.000-07:00</published><updated>2011-08-06T17:19:03.697-07:00</updated><title type='text'>Finally, scroll is done.</title><content type='html'>It's been a while since the last time I posted here. I spent this time to continue working on VScroll and HScroll. Good news: they're ready. I've read a &lt;a href="http://glprogramming.com/red/chapter03.html"&gt;chapter of the Red Book of OpenGL&lt;/a&gt; that helped me a lot on the implementation of Scrollers. The most annoying part of that is OpenGL uses a different coordinates system from the usual.&lt;br /&gt;&lt;br /&gt;After some reading and testing, I solved the problem I was having in the last post using glOrtho. The results can be seen on the pictures below. The next step is beggining the implementation of collapsible branches.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-e7Fd5I0weLE/Tj3Zzgf0UMI/AAAAAAAAAJc/d56fRStz-Q8/s1600/working1.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="312" src="http://2.bp.blogspot.com/-e7Fd5I0weLE/Tj3Zzgf0UMI/AAAAAAAAAJc/d56fRStz-Q8/s320/working1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FJU6iYi-wNk/Tj3Z3XCxVPI/AAAAAAAAAJk/5OFv1cz81O0/s1600/working2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="314" src="http://2.bp.blogspot.com/-FJU6iYi-wNk/Tj3Z3XCxVPI/AAAAAAAAAJk/5OFv1cz81O0/s320/working2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-1740325937605942968?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/1740325937605942968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/08/finally-scroll-is-done.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/1740325937605942968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/1740325937605942968'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/08/finally-scroll-is-done.html' title='Finally, scroll is done.'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-e7Fd5I0weLE/Tj3Zzgf0UMI/AAAAAAAAAJc/d56fRStz-Q8/s72-c/working1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-7697978707953561235</id><published>2011-07-10T17:36:00.000-07:00</published><updated>2011-07-10T17:36:43.560-07:00</updated><title type='text'>It's scrolling :)</title><content type='html'>From the last post to now, I could progress more. After the entire scrollbar appears on the screen, the next step was the scroll itself also appears. So the correct size to the scroll is now being calculated and it's being drawn on the screen (when it's necessary). The color of the scroll is different from the bar, so we can see it better. &lt;br /&gt;&lt;br /&gt;To drag, move and drop the scroll with pointer, I used some previous work from another PySoy student: &lt;a href="http://fzzbt.blogspot.com/"&gt;Juhani Åhman&lt;/a&gt;. Thank him for it. The limits of the scroll are set, so you can't drag the bar beyond the limits it should be dragged. The pictures below show how HScroll looks right now.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dygZwssbMXo/ThpCClVhkaI/AAAAAAAAAIs/zGTs36YJwe0/s1600/current1.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="247" width="320" src="http://4.bp.blogspot.com/-dygZwssbMXo/ThpCClVhkaI/AAAAAAAAAIs/zGTs36YJwe0/s320/current1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-w5PvAy1WIuI/ThpCG59dy3I/AAAAAAAAAI0/WJwX15tRCaQ/s1600/current2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="252" width="320" src="http://1.bp.blogspot.com/-w5PvAy1WIuI/ThpCG59dy3I/AAAAAAAAAI0/WJwX15tRCaQ/s320/current2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As you can see, they're not ready. The total content is being displayed but the screen should show just the content that's inside the widget area and as the scroll rolls, the content should change. I'm trying to make those changes to make the widget work as expected. The expected behaviour of the widget can be visualized below.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DWbIeENct0w/ThpDwL3ilHI/AAAAAAAAAI8/ENYCejuB2mE/s1600/expected1.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="247" width="320" src="http://3.bp.blogspot.com/-DWbIeENct0w/ThpDwL3ilHI/AAAAAAAAAI8/ENYCejuB2mE/s320/expected1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YgOyecS9DHw/ThpEhnUBLbI/AAAAAAAAAJE/7DaX0ejSiXg/s1600/expected2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="252" width="320" src="http://4.bp.blogspot.com/-YgOyecS9DHw/ThpEhnUBLbI/AAAAAAAAAJE/7DaX0ejSiXg/s320/expected2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Last night and today, Arc made some changes in PySoy properties. He told me to take a look at the widgets I'm writting to see how I'm using them. The result: I made a bit cleanup in the code, changed some attributes' visibility and remove some that were obsolete.&lt;br /&gt;&lt;br /&gt;I'd like to thank my mentor, David, again for the help he's giving me. Mid-term is coming and I think I'll have to change my timeline a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-7697978707953561235?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/7697978707953561235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/07/its-scrolling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/7697978707953561235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/7697978707953561235'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/07/its-scrolling.html' title='It&apos;s scrolling :)'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dygZwssbMXo/ThpCClVhkaI/AAAAAAAAAIs/zGTs36YJwe0/s72-c/current1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-7090251007883270863</id><published>2011-07-07T10:33:00.000-07:00</published><updated>2011-07-07T10:33:31.065-07:00</updated><title type='text'>OpenGL and Scrollbar</title><content type='html'>In the previous post, I said the only thing that was missing for V/HScroll widgets was the scrollbar. So I ran into Gtk/Gdk examples to start the bar implementation. After some tests outside PySoy, I decided to try to integrate the example with the PySoy code. I waste some time doing that and discovered I'm not able to do it. &lt;a href="http://arcriley.blogspot.com/"&gt;Arc Riley&lt;/a&gt; told me I have to implement the bar using OpenGL. &lt;br /&gt;&lt;br /&gt;Then I started to read an OpenGL tutorial. My mentor, David, said me I had to use &lt;a href="http://en.wikipedia.org/wiki/Vertex_Buffer_Object"&gt;Vertex Buffer Object (VBO)&lt;/a&gt; and told me to look at some examples in PySoy's code. After that, we shared the VScroll file, using &lt;a href="http://gobby.0x539.de/trac/"&gt;Gobby&lt;/a&gt;, and he explained me a lot about OpenGL and VBO.&lt;br /&gt;&lt;br /&gt;Yesterday (actually today), before I get to sleep, the first version of the bar appeared! It's a blank rectangle, placed on the right side of the widgets. The next step is to configure the viewport correctly and make the scroll actually roll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-7090251007883270863?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/7090251007883270863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/07/opengl-and-scrollbar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/7090251007883270863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/7090251007883270863'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/07/opengl-and-scrollbar.html' title='OpenGL and Scrollbar'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-3324973233523839349</id><published>2011-06-26T12:01:00.000-07:00</published><updated>2011-06-26T12:41:32.250-07:00</updated><title type='text'>Test Improvements</title><content type='html'>This week David told me to change the HScroll/VScroll tests to better visualize they working. He said I could use canvas to do so. At first I faced some problems, because canvas wasn't rendering as expected. After some debug, I found an inconsistency in the Container code. Containers were rendering their children with their own width/height instead of doing this resize using the children's width/height. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After fix Container render method, I had to overrode render method for VScroll and HScroll, to render their children in the correct position. After that, the test seemed more representative and I believe the only thing is missing for VScroll/HScroll is the scroll bar. VScroll render method is shown below.&lt;br /&gt;&lt;div&gt;&lt;pre style="background-color: rgb(238, 238, 238); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(153, 153, 153); border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, 153, 153); padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; overflow-x: auto; overflow-y: auto; width: 100%; "&gt;&lt;span class="Apple-style-span" style="color: rgb(24, 24, 24); font-size: 12px; line-height: 19px; white-space: normal; "&gt;&lt;ol&gt;&lt;li class="li1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de1" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;def override render (x: int, y : int, width : int, height : int)      &lt;/div&gt;&lt;/li&gt;&lt;li class="li2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(248, 248, 248); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de2" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;    // Render each child widget in order              &lt;/div&gt;&lt;/li&gt;&lt;li class="li1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de1" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;    var _x = x              &lt;/div&gt;&lt;/li&gt;&lt;li class="li2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(248, 248, 248); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de2" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;    var _y = y            &lt;/div&gt;&lt;/li&gt;&lt;li class="li1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de1" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;    for widget in self.children  &lt;/div&gt;&lt;/li&gt;&lt;li class="li2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(248, 248, 248); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div class="de2" style="font: normal normal normal 1em/1.2em monospace; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; vertical-align: top; line-height: 19px; background-position: initial initial; background-repeat: initial initial; "&gt;            widget.render(_x, _y, widget.width, widget.height)&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-3324973233523839349?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/3324973233523839349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/test-improvements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/3324973233523839349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/3324973233523839349'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/test-improvements.html' title='Test Improvements'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-5797055368216064920</id><published>2011-06-20T13:56:00.000-07:00</published><updated>2011-06-20T14:11:47.240-07:00</updated><title type='text'>resize_children</title><content type='html'>I started to write the resize_children method for HScroll and VScroll. They can be seen below. This code snippet represents the HScroll one. The widgets are resized and the scroll bar is shown only if it's necessary. The scroll size is also calculated on this method, according to the widgets that are on the viewport.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The scroll is not actually implemented yet. I need to figure out how to put a scroll on the screen firtst. Currently, the method is working in an abstract way. I hope to discuss with my mentor, David, this week, to find how to finish this method.&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;def override resize_children (x: int, y : int, width : int, height : int)&lt;br /&gt;  // Arbitrary bar size. Replace it for actual size&lt;br /&gt;  // after implement Scroll Bar&lt;br /&gt;  scrollBarSize : soy.atoms.Size = new soy.atoms.Size(self.size.width, 10.0, 0.0)&lt;br /&gt;        &lt;br /&gt;  var totalWidth = 0.0&lt;br /&gt;  for widget in self.children&lt;br /&gt;      totalWidth += widget.width&lt;br /&gt;      if widget.size.height &amp;gt; self.size.height&lt;br /&gt;          widget.size.height = self.size.height&lt;br /&gt;      widget.size.height -= scrollBarSize.height&lt;br /&gt;&lt;br /&gt;  var scrollWidth = ((double)scrollBarSize.width)/totalWidth * scrollBarSize.width&lt;br /&gt;       &lt;br /&gt;  // Change the viewPort only if widgets total size are greater than HScroll size&lt;br /&gt;  var viewPortWidth = totalWidth &amp;lt;= self.size.width ? self.size.width : totalWidth&lt;br /&gt;  //                                         bar not needed      bar needed&lt;br /&gt;  var viewPortHeight = totalWidth &amp;lt;= self.size.width ? self.size.height : self.size.height - scrollBarSize.height&lt;br /&gt;&lt;br /&gt;  self.viewPort = new soy.atoms.Size(viewPortWidth, viewPortHeight, 0.0)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-5797055368216064920?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/5797055368216064920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/resizechildren.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5797055368216064920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5797055368216064920'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/resizechildren.html' title='resize_children'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-3639314464847097812</id><published>2011-06-16T13:05:00.000-07:00</published><updated>2011-06-16T13:40:31.637-07:00</updated><title type='text'>It's time to scroll</title><content type='html'>Today I gave the first step to Scrollable Widgets coding. Talking to Arc Riley, he said it would be a better idea to make two Scrollable Widgets, instead of one: HScroll and VScroll. So I created these classes, inheriting from Container.&lt;div&gt;&lt;br /&gt;&lt;div&gt;The resize_children method will differ from VBox/HBox, because it will not actually resize_children. The idea is this method just resize the widgets subtracting the size the scroll bar will fill. The rest of the children's content can be viewed scrolling the bar, that will be calculated using this method.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-3639314464847097812?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/3639314464847097812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/its-time-to-scroll.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/3639314464847097812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/3639314464847097812'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/its-time-to-scroll.html' title='It&apos;s time to scroll'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-749570268409500422</id><published>2011-06-09T13:43:00.000-07:00</published><updated>2011-06-09T13:47:21.754-07:00</updated><title type='text'>Almost Free!</title><content type='html'>Today I have delivered two projects here at the university. Tomorrow I have a test and after that I will just have one more test, on the 15th. Soon I'll be fully dedicated to PySoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-749570268409500422?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/749570268409500422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/almost-free.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/749570268409500422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/749570268409500422'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/almost-free.html' title='Almost Free!'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-5723341787930765419</id><published>2011-06-01T23:37:00.000-07:00</published><updated>2011-06-01T23:50:26.379-07:00</updated><title type='text'>HBox and VBox Tests</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;This week I'm testing VBox and HBox. I noticed there was a few errors on the libsoy-side implementation of them. I think I fixed this errors, modifying some methods from Container and Widget classes.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;I also wrote two test files. One for VBox and another one (similar) for HBox. The tests reflects the functionality of VBox and HBox to resize their children when their size change.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;The bindings for PySoy were also tested. An output is shown below.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; w = soy.widgets.Window()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; hbox = soy.widgets.HBox(w)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vbox = soy.widgets.VBox(hbox)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vb2 = soy.widgets.VBox(hbox)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; bigger = soy.atoms.Size((640, 480, 0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vbox.size = soy.atoms.Size((750,500, 0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vb2.size = soy.atoms.Size((250,500, 0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vbox.size&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;size&gt;&lt;/size&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; hbox.size&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;size&gt;&lt;/size&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; hbox.size = bigger&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vbox.size&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;size&gt;&lt;/size&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt;&amp;gt;&amp;gt; vb2.size&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;size&gt;&lt;/size&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-5723341787930765419?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/5723341787930765419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/hbox-and-vbox-tests.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5723341787930765419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5723341787930765419'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/06/hbox-and-vbox-tests.html' title='HBox and VBox Tests'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-5368590113349095998</id><published>2011-05-21T13:01:00.000-07:00</published><updated>2011-05-21T13:19:58.633-07:00</updated><title type='text'>PySoy Interactive Widgets API</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;AI wrote down a simple API to guide me while developing the widgets on my GSoC project. It's a bit small, but I think it will help me a lot to save time when I start to code the widgets. The community bonding period ends on Monday, so It's better I'll be ready for start coding.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;The API can (and probably will be) incremented along the project. Its first version can be seen below.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;HBox&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;HBox are containers for other widgets and displays them horizontally.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates a simple HBox and insert two widgets on it. The widgets are displayed horizontally.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; hBox = HBox()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; widgetA = Widget(hBox)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; widgetB = Widget(hBox)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;VBox&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;VBox are containers for other widgets and displays them vertically.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates a simple VBox and insert two widgets on it. The widgets are displayed vertically&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; vBox = VBox()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; widgetA = Widget(vBox)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; widgetB = Widget(vBox)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Scrollable&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;Scrollable are widgets with on-demand scroll bars. If the content of the widget doesn't fit the viewport, a scroll bar is displayed so the content is visible.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Properties&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;horizontalScrollBar &lt;/b&gt;- Define the horizontal scrollbar of a scrollable widget.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;verticalScrollBar &lt;/b&gt;- Define the vertical scrollbar of a scrollable widget.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;alwaysOn &lt;/b&gt;- Define if the scrollbars are always visible or just displayed when it's necessary. Default value is False.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates two scrollbars, create a scrollable widget and set the vertical and horizontal bars.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; scrollBar1 = soy.widgets.ScrollBar()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; scrollBar2 = soy.widgets.ScrollBar()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; scrollable = soy.widgets.Scrollable(window, alwaysOn=True)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; scrollable.horizontalScrollBar = scrollBar1&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; scrollable.verticalScrollBar = scrollBar2&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Branches&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;Collapsable branches, or just branches, are nodes used in a tree model. They can be expanded or collapsed.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates a Branch and insert two nodes on it. In this case, the nodes are contacts.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; branchFamily = Branch(vBox)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; contactWJ = Contact('Walter Junior')&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; contactWJ.picture = '../img/default.png'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; branchFamily['Walter Junior'] = contactWJ&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; branchFamily['Mark'] = Contact('Mark R')&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Text Input&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;A text input widget is basically a widget where the user can write text on.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Properties&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;size &lt;/b&gt;- Define the size of the text input area.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;lineWrap &lt;/b&gt;- Define if the text input will use line wrap or continuous line.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;text &lt;/b&gt;- The current text in a text input.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates a text input inside a window, set its size and set the line wrap to True.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; w = soy.widgets.Window()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; sentBox = soy.widgets.TextInput(w)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; sentBox.size = soy.atoms.Size((300, 100, 0))&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; sentBox.lineWrap = True&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Text Display&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;A text display widget is used to display any kind of text in games and applications.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Properties&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;size &lt;/b&gt;- Define the size of the text display area.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;b&gt;text &lt;/b&gt;- The current text in a text display.&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: arial; text-align: justify; "&gt;&lt;span class="Apple-style-span" &gt;Example&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial; font-size: medium; text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; # Creates a text display inside a window and set its size. After that, change its text to 'test'.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; w = soy.widgets.Window()&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; display = soy.widgets.TextDisplay(w)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; display.size = soy.atoms.Size((300, 100, 0))&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span"  &gt;&amp;gt;&amp;gt;&amp;gt; display.text = 'test'&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;font-size: large; "&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-5368590113349095998?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/5368590113349095998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/05/pysoy-interactive-widgets-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5368590113349095998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5368590113349095998'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/05/pysoy-interactive-widgets-api.html' title='PySoy Interactive Widgets API'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-517959919414105718.post-5463089734086521514</id><published>2011-05-13T13:18:00.000-07:00</published><updated>2011-05-13T13:59:05.979-07:00</updated><title type='text'>GSoC 2011 - PySoy's Interactive Widgets</title><content type='html'>Recently, I've been accepted as a Google Summer of Code student under the Python Software Foundation (PSF). To be more specific, I'll be working with the &lt;a href="http://www.pysoy.org/"&gt;PySoy&lt;/a&gt; project (#pysoy @ irc.freenode.net). My project aims, mostly, building a set of themeable interactive widgets for PySoy to make possible to build a buddy list and chat windows, which users will use to comunicate in and out PySoy's based games.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since April 25th we're on community bounding period. In this period, they don't recommend us to code. My mentor, &lt;a href="http://pysoy-dev-win32.blogspot.com/"&gt;David Czech&lt;/a&gt;, is a bit busy, these days, so I used this time to read the source and the documentation of the project. I focused a bit more in the soy.widgets.* module, since it's there I'll code most part of the project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also used this time to provide the necessary paperwork to prove I'm a regularly enrolled student. I'm still waiting the answer from the officer of my undergraduate program to get this papers done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I made a fresh Ubuntu 11.04 install at my PC. At the moment, I'm having some troubles to get the examples running fine. Apparently, "Thread.usleep(...)" calls are causing segmentation fault. I'm looking for answers, but I couldn't find one yet.&lt;/div&gt;&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/517959919414105718-5463089734086521514?l=amaurymedeiros.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amaurymedeiros.blogspot.com/feeds/5463089734086521514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/05/gsoc-2011-pysoys-interactive-widgets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5463089734086521514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/517959919414105718/posts/default/5463089734086521514'/><link rel='alternate' type='text/html' href='http://amaurymedeiros.blogspot.com/2011/05/gsoc-2011-pysoys-interactive-widgets.html' title='GSoC 2011 - PySoy&apos;s Interactive Widgets'/><author><name>Amaury</name><uri>http://www.blogger.com/profile/16033605887794653889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/-53_xWa0CLr8/TXgBopMjj7I/AAAAAAAAAEQ/N5HGVUWIylc/s220/msn5.png'/></author><thr:total>0</thr:total></entry></feed>
