Styles are OmniRemote's way of handling images. These images can be used for buttons and backgrounds. There are currently 4 different types of styles which each contain a different number of images (bitmaps). The list below shows the number of bitmaps that a style contains and a description of that type of style: 1 Screen background, button background or a simple rectangular button with square corners and no transparent areas. 2 A button with transparent areas. (such as a round button or a button with rounded corners) 8 A rectangular button frame with square corners and no transparent areas. 16 A rectangular button frame with transparent areas. (such as the default OmniRemote buttons which have rounded corners) Buttons made from 1 or 2 bitmaps do not resize conveniently. When resized they simply tile - repeating the same pattern over and over. If you wanted to make a simple rectangular button with a repeating pattern on it, this could resize well. If you made a circular button this way, the user would need to always make the buttons the size of the circle. If the user tried to make the circle button 50% taller and 50% wider, they might expect a bigger circle, but they would end up with the original circle with two half circles next to it (one on the right and one below). Button frames are a way of working around this problem somewhat, however it still isn't possible to make a circle that resizes properly. (though possibly in the future) A button frame is a rectangular frame (like a picture frame) made from eight bitmaps. There are 4 corner bitmaps and 4 edge bitmaps. When the frame is expanded the edge bitmaps tile to whatever length is needed. The corners remain the same size. The difference between a 1 bitmap style and a 2 bitmaps style (or the difference between 8 and 16) is the addition of transparency. This is done through the use of a transparency mask. A transparency mask is a simple black and white (2 color) bitmap which indicates where the transparent areas are. In a style with transparency The bitmaps are paired together so that every bitmap has an associated transparency mask. All of the areas which you want to be transparent should be pure white in your bitmap and black in the transparency mask. Any areas that you don't want to be transparent should be white in the transparency mask. The bitmaps in a 16 bitmap style are in the following order: 1 Upper left corner 2 upper edge 3 upper right corner 4 left edge 5 right edge 6 lower left corner 7 lower edge 8 lower right corner 9 transparency mask for bitmap 1 10 transparency mask for bitmap 2 11 transparency mask for bitmap 3 12 transparency mask for bitmap 4 13 transparency mask for bitmap 5 14 transparency mask for bitmap 6 15 transparency mask for bitmap 7 16 transparency mask for bitmap 8 In an 8 bitmap style use 1-8 from the above list. In a 2 bitmap style the first bitmap is your image and the second is its transparency mask. There are some rules about the sizes of bitmaps: The transparency mask must always be the same size as its associated image. All 4 corners must be the same size. The left and right edges must be the same width as the corners. The top and bottom edges must be the same height as the corners. These rules can be broken, but things may not appear as you expected. Bitmaps can be made in the following color modes: 2 colors 4 colors 16 colors 256 colors Using the wrong color mode for a device may not look as good, it also may draw more slowly. Bitmap families are supported (to create styles that work well in all color modes) if you know how to create them. This issue is beyond the scope of this document. Transparency maps should always be in 2 color mode. Compression is allowed, however it may not be supported on all Palm devices. (i.e. older devices) So now that you know what to create, here's how to import it into your OmniRemote database. You will need to create a Palm resource database containing the bitmaps, HotSync it onto your Palm and then import them by launching OmniRemote and clicking: Menu|Advanced|Styles|Import The resource database can either have a type/creator of: 'DATA' / 'olHa' or 'RESO' / 'pRES' and the IDs of the bitmaps start at 3000 If you don't know what this means, don't worry about it. If you only want to import a screen background containing a single bitmap that is 160x160 pixels (the size of most screens) then you can do it using a simple third-party Java tool called Open Logo Hack Creator. This tool wasn't intended for use with OmniRemote, but it works - and it's Java! Everybody loves Java, right? (don't answer that) You can search for Open Logo Hack on Palmgear or other sites. Simply add in your image, set the color mode and compression, generate the .pdb file and install. (then import in OmniRemote) Which types of files are supported by Java can vary, for example it wouldn't open .BMP files for me, so I converted them to .PNG If you want to do something more complicated that doesn't involve 160x160 images then read on and I'll explain how to create your Palm file with PilRC. PilRC can be downloaded from Palm.com or other locations, it's open source, cross platform and there are pre-compiled versions for Windows available. (but be warned, you still need to use the command prompt!) Create a text file with a convenient name (this will be the name of your resulting database) in the same folder as PilRC. For a simple 1 bitmap style, the text file should say something like: VERSION "1.0" BITMAPCOLOR ID 3000 "c:\\temp\\aq1.bmp" NOCOMPRESS BITMAPCOLOR can be any of the following: BITMAP (2 colors) BITMAPGREY (4 colors) BITMAPGREY16 (16 colors) BITMAPCOLOR (256 colors) Between the quotes is the path and filename for your bitmap file. I used .BMP format, I'm not sure if other formats are supported (see PilRC documentation). Notice that double backslashes are needed if you use backslashes in your path. NOCOMPRESS can also be COMPRESS (not sure if there are other possible settings). A more complicated example below for a 16 bitmap style (but still relatively simple) VERSION "1.0" BITMAPCOLOR ID 3000 "c:\\temp\\aq1.bmp" NOCOMPRESS BITMAPCOLOR ID 3001 "c:\\temp\\aq2.bmp" NOCOMPRESS BITMAPCOLOR ID 3002 "c:\\temp\\aq3.bmp" NOCOMPRESS BITMAPCOLOR ID 3003 "c:\\temp\\aq4.bmp" NOCOMPRESS BITMAPCOLOR ID 3004 "c:\\temp\\aq5.bmp" NOCOMPRESS BITMAPCOLOR ID 3005 "c:\\temp\\aq6.bmp" NOCOMPRESS BITMAPCOLOR ID 3006 "c:\\temp\\aq7.bmp" NOCOMPRESS BITMAPCOLOR ID 3007 "c:\\temp\\aq8.bmp" NOCOMPRESS BITMAP ID 3008 "c:\\temp\\aq9.bmp" NOCOMPRESS BITMAP ID 3009 "c:\\temp\\aq10.bmp" NOCOMPRESS BITMAP ID 3010 "c:\\temp\\aq11.bmp" NOCOMPRESS BITMAP ID 3011 "c:\\temp\\aq12.bmp" NOCOMPRESS BITMAP ID 3012 "c:\\temp\\aq13.bmp" NOCOMPRESS BITMAP ID 3013 "c:\\temp\\aq14.bmp" NOCOMPRESS BITMAP ID 3014 "c:\\temp\\aq15.bmp" NOCOMPRESS BITMAP ID 3015 "c:\\temp\\aq16.bmp" NOCOMPRESS Now that you have created that file, go to your command prompt, cd into the folder where all that stuff is and type: pilrc -ro filename (where filename is the name of the text file you just created) The file it creates is a Palm resource database but it has a funny file extension (.ro). Rename it so that it ends in .PRC then you will be able to HotSync it onto your Palm and import it into OmniRemote. A few notes: 1. It may be tempting to make bitmaps extremely small to save space. For example if you wanted a green background you could make a one pixel bitmap (that is green) and let OmniRemote tile it to cover the whole screen. Or you could do something similar with the edge bitmaps of a frame, making them a thin slice and letting OmniRemote tile them. These practices are not recommended because tiling is slow. A larger bitmap will draw much faster. Of course lots of 160x160 bitmaps aren't recommended either, because they take up too much space on the Palm (the user could easily run out of memory). Strive for a balance between speed and storage. 2. Working with these small bitmaps you may find that a program like Paint Shop Pro which does not do anti-aliasing may be easier to use than a program like PhotoShop which does. 3. If you want to create styles on the Palm itself, there is a tool called rsrcEdit. It was formerly developed by Individeo, and now Quartus supports this product.