April 2009

It’s pretty bad for me to even do this because some of these ebooks might have copyright blah blah on them but I got them from the web too!

I. save_the_pixel_by_ben_hunt

Here’s my favorite reference: Save the Pixel by Ben Hunt. Ben Hunt is a very good and practical web designer. Not the usual web designer who just draws and edit images in Photoshop and uses them as CSS background images. I don’t know if he minds but he also said that it’s a good thing that people can actually learn from him (without any monetary returns) since it helps build his reputation (not that he even needs it, I mean – he must really be popular in the field of web design and I truly admire him).
II.  CSS, DHTML, and Ajax, Fourth Edition
One of the first references I have actually read regarding basics of CSS, DHTML and Ajax (as the name suggests). It’s  a really good book for beginners. Comprehensive and precise. Here’s the complete book description:
CSS, DHTML, and Ajax, Fourth Edition: Visual QuickStart Guide

The Web doesn’t stand still, and neither does this guide: Completely updated to cover the new browsers, standards, and CSS, DHTML, and Ajax features that define the Web today, the one thing that hasn’t changed in this edition is its task-based visual approach to the topic. In these pages, readers will find friendly, step-by-step instructions for using CSS, DHTML, and Ajax to add visually sophisticated, interactive elements to their Web sites. Using loads of tips and screen shots, veteran author Jason Cranford Teague covers a lot of ground–from basic and advanced dynamic techniques (for example, making objects appear and disappear) to creating effects for newer browsers, migrating from tables to CSS, and creating new DHTML scripts with embedded scroll areas, fixed menu bars, and more. Users new to CSS, DHTML, and Ajax will find this a quick, easy introduction to scripting, while more experienced programmers will be pleased to find practical, working examples throughout the book.

III. joomla-template-design1

I actually did not benefitted much from this book as this book is just a guide for really joomla newbies re: template design. But in a beginner’s perspective – I feel that this will help them with actually building a new template. 😀


The good thing about Degrafa is its ability to utilize SVG Data either for creating Simple Geomerty:


to complex ones using combinations of different svg paths and geometries, like this one:



A lot of resources on how to skin flex components using Degrafa are now widely available  on the web, most of them located at the samples repository of the Degrafa site. A simple way of doing so even has a screencast, which also has been my initial reference in creating skins and border-skins for containers and controls like canvas and buttons respectively.

As I progress in my work in using Degrafa for my UI, I noticed that when applying Path to surfaces, or using Paths to define the icon of a button, the path does not follow the constraints I assign to it.

For example, a graphic border skin works out just fine when i assign it to be the skin of a button:



<Path x="{ax}" y="{ay}" width="{awidth}" height="{aheight}" data="....." />



Where the above code does not render properly when i assign this to be the icon of a button or any control component.

The same thing goes for this one:



<Path x="{ax}" y="{ay}" width="{awidth}" height="{aheight}" data="....." />



I came across a relevant topic regarding assigning of a degrafa class to a control icon in a blog of Mr. Patrick Hansen, and from his example I saw that he used a translateTransform to reposition the path that defines the checkmark icon for a checkbox and a note that says:

 <!--set transform becasue paths behave differnetly in Degrafa and the transfrom helps define the position-->

And I used his code to create my own checkmarck icon. Using my own path (I uses Inkscape btw) And I saw that mine is misplaced. From there I played with translating x and y until i can finally position the path on the right location. And I move on with my primary concern: Creating Icons for Buttons.

But I have to learn how to constraint the size of my path according to the size of my button.  I tried to look at other transforms and saw ScaleTransform. However if I assign scaleX and scaleY of the transform this just scales the drawing relative to the original size of the drawing (same problem i encountered with using images as icons) which is not what i needed. 

The thing is, I know what I needed. I do not know how to implement it. And since the web is only my resource and I can only know things that I have read (so my limitation is that I haven’t read every how-to’s of degrafa and if ever i did, i am short on comprehension).

Since I have source codes of degrafa (the latest available) I track the code that draws the path and found on:
the function: 

override public function calculateLayout 

I found this function a bit off 
since to be able to get inside this function 
a layout constraint should be defined. 

However, nowhere inside the code used the attributes i defined for my 
except on line 560 that 
assigns the _layoutRectangle = _layoutConstraint.layoutRectangle. 
Now, this _layoutConstraint.layoutRectangle is readonly and i cannot 
assign it anywhere. 
When i try to prompt this attribute it returns a 0000 rectangle. 
so this whole function seemed to me like it had done nothing. 

I tried rewriting the lines one by one by adding an if else condition 
for example 
on lines 542-544: 

        tempLayoutRect.width = bounds.width; 

i rewrite it to: 

        tempLayoutRect.width = bounds.width; 
} else { 
        tempLayoutRect.twidth = _layoutConstraint.width; 


and so forth 
and at the end i replaced line 560 to: 

_layoutRectangle = tempLayoutRect; 

and tried this on my skin file:

<Path data=".....">

<linearConstraint><LinearConstraint x="{ax}" y="{ay}" width="{awidth}" height="{aheight}" />


And I got what I needed.

The only thing now is I still have to reasign the x and y

as -x and -y respectively (I think its because the coordinate axis of inkscape is a bit different — well i really dont know)

as what Mr. Patrick did on his codes.

But I still feel the need to make this (adjustment) automated as possible since I recycle skins to use for various purposes.


And also, I dont want to be changing source codes so I created a class file that extends Path and used this instead.


*I dont know how to upload files here. . 😛