Sponsored links

Go Back   MP3Car.com > Mp3Car Technical > Software & Software Development > Support Software > SkinBedder


Reply
 
Share Thread Tools Display Modes
Old 09-23-2005, 02:30 AM   #1
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
[Release] SKINbedder V3 - Preview

EDIT: V3 - Preview #2 is out... get it here: http://www.mp3car.com/vbulletin/skinbedder/70438-release-skinbedder-v3-preview-2-a.html


Download: http://www.whipflash.com/vamr/SkinBedder_v3.zip

Screen-Shots: Below and in other threads (http://www.mp3car.com/vbulletin/show...4&page=3&pp=15).

Note: This is not ready for in-car use until the iGuidance skin is completed. There are also problems with transparency (both in embedded windows and in PNG graphics). See the "Status" header in the 3rd post for details.

This release is mainly for people who want to start skinning other apps or want to help complete the iGuidance skin.


Code:
SKINbedder V3 - Preview Release Readme File Introduction ------------ SKINbedder V3 allows users to easily create a custom touchscreen-friendly UI for any application or group of applications. With it you will be able to auto-size, position, trim, and embed any group of windows to your own custom layout. Hot-Spot graphics can then be overlaid allowing you to control the windows through your own custom UI. Embedded windows can be made transparent by "deleting" one color and/or semi-transparent by alpha-blending the window. Graphics are PNG which supports transparency and alpha-blending. Hot-Spot controls (as well as responses to open, close, hibernate, and resume) are defined using a simple scripting language. Installation: ------------ Extract the entire contents of the .zip distribution file to the folder "c:\program files\SKINbedder". You can then run SKINbedder.exe or SKINbedder_NOEX.exe from that folder (SKINbedder is distributed for use with iGuidance. iGuidance must be installed in its default location "c:\program files\iNAV\iGuidance"). Note: SKINbedder should run from any folder as long as it has the proper sub-folders and INI files. Configuration: ------------- All configuration is done by editing INI files (and PNG graphics). These INI files (and PNG graphics) are organized in subfolders of SKIN\Window. Here are some examples of the type of settings you will find in the configuration files on each level. Skinbedder.ini - Sets the default "SKIN" to iGuidance and specifies re-draw refresh-rate. iGuidance\iGuidance.ini - Sets SKINbedders size/position/window name/startup-script/etc. iGuidance\iGMap\iGMap.ini - Sets the map size/position/nudging/etc. iGuidance\iGMap\Bookmark_Left.ini - Sets the actions/positions of the 4 left buttons. iGuidance\iGMap\BookmarkLeft_Down.png - The graphic of the 4 left buttons that you see. ... Note: To change the location of iGuidance, you would edit the Run() command in the [Scripts], Startup= section of iGuidance\iGuidance.ini. Making a new "SKIN": ------------------- Make a copy of the SKINbedder\iGuidance folder and rename it to the name of your new SKIN. Edit SKINbedder.ini and change the "DefaultProgram" to the name of your new SKIN. Go into your new folder and rename its iGuidance.ini to the name of your new SKIN. Edit its INI file, change the top section name to the name of your new SKIN. Change the Startup script in the INI file to run your program, embed your main window sub-folder, and load your skin-layer. Rename the iGMap sub-folder to the name of your main window. Go into it, rename its iGMap.ini, rename the section at the top of that INI file. Edit the rest of the INI file to configure sizing/positioning/nudging/transparency/etc. Rename BookMark_Left.ini to the name of your Skin-Layer. Rename the section at the top of it and then edit the rest of it to configure graphics/action hot-spots/button commands. Folder Structure: ---------------- SKINbedder \_ SKINbedder.ini Default SKIN Sub-Folder & Refresh-Rate. \_ [SKIN] Sub-Folders (one per SKINbedder instance). \_ SKIN.ini Startup/Shutdown/Hibernate Scripts & Form Settings. \_ LoadingPIC Displays while SKINbedder is loading. \_ [Window] Sub-Folders (one per window type to embed). \_ Window.ini Window Size/Position/Trim/Transparent Settings. \_ Layer.ini Layer Graphics/Position/Hot-Spots Settings \_ Up.png Image with all Hot-Spot buttons "up". \_ Down.png Image with all Hot-Spot buttons "down". SKINs: ----- SKINbedder V3 is designed so that you can use multiple instances of it to embed multiple different applications. Each application layout is defined in a "SKIN" sub-folder. SKINbedder V3 is distributed with an iGuidance SKIN. To launch SKINbedder with a different SKIN than iGuidance, simply pass the SKIN name as a parameter to SKINbedder.exe. You can also change the default SKIN by editing SKINbedder.ini (used when double-clicking SKINbedder.exe or launching it without a parameter). Through a SKINs INI file, you can set a the SKINbedder window name/size/position and the Startup/Shutdown/Hibernate/Resume scripts. Window Containers: ----------------- Anything you want to embed is contained in a TWindowContainer. Through a window container INI file, you can set the windows class, name, size, position, nudging, and transparency. You size/position the window by specifying a Width, Height, TopBorder, BottomBorder, LeftBorder, and/or RightBorder (usually only 2, 3, or 4 of the 6). Borders are the distance between the edge of the main SKINbedder form, and the edge of your embedded window. If you do not specify any borders, you must specify width and height and your window will be centered. If you specify all 4 boarders are 0, you do not need to specify width and height and your window will be stretched to fit the entire area of the main SKINbedder form. Borders are respected even when the main SKINbedder form is resized. See the table below for all possible combinations: Horizontal: Width only: Center Width+LeftBorder: Left edge is LeftBorder pixels from left edge of main form. Width+RightBorder: Right edge is RightBorder pixels from right edge of form. Width+LeftBorder+RightBorder: Same as Width+Left except width will shrink if needed to respect right border. Vertical: Height only: Center Height+TopBorder: Top edge is TopBorder pixels from top edge of main form. Height+BottomBorder: Bottom edge is BottomBorder pixels from bottom edge of form. Height+TopBorder+BottomBorder: Same as Width+Top except height will shrink if needed to respect bottom border. The window title-bar and border are automatically removed when it is embeded. To remove a button-bar, status-bar or to only view a specific rectangle of the window, use the nudge settings. Skin Layers: ----------- Each set of graphics are contained in a TSkinLayer. Through a skin layer INI file, you can set the all-buttons-up image, the all-buttons-down image, the position of the skin layer, the coordinates for each button, and a OnButtonDown and/or OnButtonUp Command. If you specify both commands, the button will function as a toggle button (it will stay down after one press, and run the OnButtonUp command on the second press). The layer is positioned using Borders just like window containers are (but the width and height are determined by the all-buttons-up image). Scripts: ------- SKINbedder works purely by executing its own scripting language. In the main ini there is a startup script, shutdown script, hibernate script, and resume script. Also in each skin ini, each button has a command script. Scripts are a list of commands (see below) separated by commas. There can be no spaces in the script.

Current Status

Last edited by RPM_VR4; 08-16-2006 at 12:33 AM.
RPM_VR4 is offline   Reply With Quote
Advertisement
 
Advertisement
Sponsored links

Old 09-23-2005, 02:32 AM   #2
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
Code:
Commands: -------- Close([WindowContainer]) - Closes a window container (should be done after window it was containing is closed). Embed([WindowContainer]:[ms]) - Embeds a window. Will give up window not found within [ms] milliseconds. Focus([WindowContainer]) - Sets windows focus to an embedded window (must use before using Send([Key])). HideSkin([SkinLayer]) - Hides a skin layer. Kill([filename]) - Will end-task any process. LoadSkin([Folder]:[SkinLayer]) - Loads or unhides a skin layer. Layers are paired with the windows they control. OnTop([True/False]) - Sets SKINbedder to always on top or not. WARNING: Changing this kills all embedded windows. Play([filename]) - Plays a sound file using MMSystem in the windows API. Run([filename]) - Will run the file. Filename can specify a complete path. RunWait([filename]) - Will run the file and pause the SKINbedder until the process terminates. Send([Key]) - This will simulate a key press (see below) Wait([ms]), Delay([ms]), Sleep([ms]), or Pause([ms]) - This will pause the script for [ms] milliseconds. Keys: ---- A - Z 0 - 9 F1 - F12 BKSP or BACKSPACE ENTER or RETURN ESC or ESCAPE or EXIT SPC or SPACE or SPACEBAR PLUS or + MINUS or - or DASH UP or UPARROW DOWN or DNARROW or DOWNARROW LEFT or LTARROW or LEFTARROW RIGHT or RTARROW or RIGHTARROW PGUP or PAGEUP PGDN or PAGEDOWN INS or INSERT DEL or DELETE HOME END TAB CTRL-... ALT-... SHIFT-...


Last edited by RPM_VR4; 09-23-2005 at 02:35 AM.
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 02:34 AM   #3
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
Code:
Status: ------ SKINbedder V3 is not complete. This preview release has the following known bugs/limitations. -Buttons disappear when map is updated. The current work-around is repainting them on a timer. This causes any semi-transparent effect to fade up. An alternate exe (SKINbedder_NOEX.exe) does not have this problem, but the transparent part will not be updated when the window behind the buttons updates itself. -Transparent/Alpha-Blended windows will not refresh. You must close and re-open them to have them update. -The iGuidance SKIN is not complete. Many sub-windows will not embed right or not exit right. The OSK does not work. This is not a usable release until the skin is complete. If you have the desire to continue my SKINing effort or make your own skin, you can make it usable. Please contact me (RPM_VR4 on MP3Car.com) if you have successfully skinned additional iG sub- windows. ----------------------------------------------------------------------- SKINbedder was written by Ryan McCormick (RPM_VR4) and David Burban (0l33l). Delphi source code available upon request. Visit the SKINbedder forum on MP3Car: http://www.mp3car.com/vbulletin/skinbedder/

Attached Images
 

Last edited by RPM_VR4; 09-23-2005 at 03:06 AM.
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 03:00 AM   #4
Raw Wave
 
lostreception's Avatar
 
Join Date: Sep 2004
Location: NY
Posts: 1,806
lostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud oflostreception has much to be proud of
wow looks great
how often does the route list refresh
__________________
.______
| '_ |__\___
[(o)|___(o)] XB
._________
| I__I I_I|_\__I
[(o)______(o)]b VanPimpin'

LostReceptions Apps D/L Here

GPSGasoline- Rewriting

Draw- SkribblePad for Touchscreens

iGQwerty-iG3.0 Qwerty Keyboard

CarPCNetwork
lostreception is offline   Reply With Quote
Old 09-23-2005, 03:12 AM   #5
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
Well if you keep it transparent, it never refreshes unless you close it and re open it using one of the right-side menus.

If you edit the iGuidance\iGRoute\iGRoute.ini file, you can make it non-transparent and then it will be updated whenever iGuidance updates it.

Note: The "refresh bug" is just repainting the buttons to keep them visable. Also the SKINbedder_NOEX.exe does not have this problem (but it does not redraw the map in its transparent part). For any API programmers reading this, the _NOEX build does not use ExStyle = ExStyle || WS_EX_TRANSPARENT, where as the main build does.
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 04:33 AM   #6
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
Setup hints:

Open iGuidance\iGuidance.ini
Find the [Scripts] section
Find the Startup= variable.
Edit "Run(c:\progra~1\iNAV\iGuidance\iGuidance.exe) " to your path (no spaces).
If using it embedded in a front-end, add ",OnTop(True)" after the above.

Note: If you turn on Always-On-Top (using "OnTop(True)"), all sub-windows will have to be embedded or you will not see them. The iGuidance SKIN is not complete yet, so not all sub-windows are embedded.

Also Note: Using "OnTop(False)" seems to kill any embedded window for some reason???

Last edited by RPM_VR4; 09-23-2005 at 03:29 PM.
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 06:19 AM   #7
Raw Wave
 
justintime's Avatar
 
Join Date: Apr 2005
Posts: 2,705
justintime is on a distinguished road
Apparently you can only use the 8.3 DOS filename in the RUN portion of the script. Why won't this accept long gpath names? I cannot get it to run

Quote: Originally Posted by RPM_VR4
Setup hints:

Open iGuidance\iGuidance.ini
Find the [Scripts] section
Find the Startup= variable.
Edit "Run(c:\program files\iNAV\iGuidance\iGuidance.exe)" to your path.
If using it embedded in a front-end, add ",OnTop(True)" after the above.

Note: If you turn on Always-On-Top (using "OnTop(True)"), all sub-windows will have to be embedded or you will not see them. The iGuidance SKIN is not complete yet, so not all sub-windows are embedded.

Also Note: Using "OnTop(False)" seems to kill any embedded window for some reason???

__________________
2002 Honda CR-V
Carputer progress: 90% [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ -]
Spent so far: $1105.90


Download the NEXUS Skin for Centrafuse
...or even Listen to my music
justintime is offline   Reply With Quote
Old 09-23-2005, 08:17 AM   #8
Raw Wave
 
justintime's Avatar
 
Join Date: Apr 2005
Posts: 2,705
justintime is on a distinguished road
Got it to work in my laptop...

I AM VERY IMPRESSED!!!!!!!
__________________
2002 Honda CR-V
Carputer progress: 90% [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ -]
Spent so far: $1105.90


Download the NEXUS Skin for Centrafuse
...or even Listen to my music
justintime is offline   Reply With Quote
Sponsored links
Advertisement
 
Advertisement
Old 09-23-2005, 08:36 AM   #9
FLAC
 
PURDooM's Avatar
 
Join Date: Jun 2005
Location: Anoka County, MN
Posts: 1,021
PURDooM is on a distinguished road
I was thinking over your blending bug the other day... am I correct to assume that the blending bug blends whatever its drawing over with the new image with some kind of function you write? If so, it may take some altering of the code but you could pull off a trick like igzoom v2:

-put all of your interface on a new window
-set the new window to layered transparency (with no borders or caption)
-use BitBlt to copy the contents of iguidances window into memory somehow so you have a fresh copy of the iguidance display every time you refresh
-Have the new window follow around the status changes (minimize, zorder changes, ect) of iguidance/skinbedder (with set parent or something) by making it a modal window
-Have the new window follow around the size/position of iguidance/skinbedder

And then you have buttons that appear to be in the window, and arent affected by iguidances redraw. Its alot of codeing though
__________________
Current projects: iGmod reloaded (Latest release) (put on hiatus indefinatly)

Unlimited Internet and gps tracking for $6 a month with boost mobile!

Carputer 2: www.lmaocar.com

Last edited by PURDooM; 09-23-2005 at 12:05 PM.
PURDooM is offline   Reply With Quote
Old 09-23-2005, 11:23 AM   #10
The Curator
 
Blue ZX3's Avatar
 
Join Date: Aug 2004
Location: Chicago area,IL
Posts: 3,563
Blue ZX3 will become famous soon enoughBlue ZX3 will become famous soon enough
Looking at this preveiw...Very very nice, and its not done yet.

<--- Wants, can't wait...

Once again thanks guys. Keep it up...
__________________
RideRunner...The #1 FE, PERIOD.

RR Media >>HERE <<

RRExtended Plugin
Updated RR Config (Current Ver 1.0.2.0)
Old RR Versions
Complete CFX PSD Set
RRSkinEditor v.76c
DFX Btn Editor
Blue ZX3 is offline   Reply With Quote
Old 09-23-2005, 03:29 PM   #11
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
JIT: Sorry... it does accept long path names, but it doesn't accept spaces. Therefore you have to use progra~1. I don't think I can fix that except by not using INI files. A future version may use XML.
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 03:40 PM   #12
Maximum Bitrate
 
psyrex's Avatar
 
Join Date: Jun 2005
Location: Oakland, CA
Posts: 531
psyrex is on a distinguished road
I'm at work, so I can't test it right now, but what about using quotations marks? Would that work around the space issue? Like this: "C:\Program Files\iNav\iGuidance"

-psyrex
__________________
Gen 1: Pentium 3 1GHz - ATX - 2005
Gen 2: Pentium M 1.6GHz - ITX - 2006
Gen 3: Pentium M 2.0GHz - 5.25" SBC - 2007
Gen 4: (coming soon: Core2 Duo - 3.5" SBC - 2009)
...it never ends
psyrex is offline   Reply With Quote
Old 09-23-2005, 03:48 PM   #13
Banned
 
RPM_VR4's Avatar
 
Join Date: Nov 2004
Location: L.A.
Posts: 1,944
RPM_VR4 is on a distinguished road
I don't think so. Maybe putting quotes around the entire Startup="Run(....),..." line, but I doubt that too. The problem is not how I am handling the RUN command, the problems is that I am reading a long comma-delimited list from an INI file, and if you have Startup=Run(c:\program files\iNav\..... then my INIFile.ReadString(Statup) function only returns "Run(c:\program".
RPM_VR4 is offline   Reply With Quote
Old 09-23-2005, 04:34 PM   #14
Raw Wave
 
justintime's Avatar
 
Join Date: Apr 2005
Posts: 2,705
justintime is on a distinguished road
I must be doing something wrong, because even with the 8.3 format (progra~1 etc) it is failing on me.

I use the command:
dir /x to list the 8.3 names... so I know I am using the right ones. Will try again tonite.
__________________
2002 Honda CR-V
Carputer progress: 90% [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ -]
Spent so far: $1105.90


Download the NEXUS Skin for Centrafuse
...or even Listen to my music
justintime is offline   Reply With Quote
Old 09-23-2005, 07:24 PM   #15
Raw Wave
 
justintime's Avatar
 
Join Date: Apr 2005
Posts: 2,705
justintime is on a distinguished road
OK, I tried just now...

Path to my exe:
D:\General Programs\iNav\iGuidanceiGuidance.exe

this is what I am using:
StartUp=Run(D:\GENERA~1\INAV\IGUIDA~1>IGUIDA~1.EXE )

...and I get:
Run Error: D:\GENERA~1\INAV\IGUIDA~1>IGUIDA~1.EXE Not Found!

Any ideas?
__________________
2002 Honda CR-V
Carputer progress: 90% [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ -]
Spent so far: $1105.90


Download the NEXUS Skin for Centrafuse
...or even Listen to my music
justintime is offline   Reply With Quote
Sponsored links
Advertisement
 
Advertisement
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Motorola V3 USB-connect (w/ BT Audio Gateway)... If you use a V3 RAZR come here! RoyN PhoneControl 27 10-29-2005 10:30 PM
[Release] SKINbedder BETA 2.99999 0l33l SkinBedder 450 09-23-2005 04:38 AM
[Release] iGLaunch v3 0l33l SkinBedder 145 07-05-2005 11:33 AM
[Release] SKINbedder v2 0l33l SkinBedder 242 07-05-2005 05:01 AM
[Release] SKINbedder 1.0 RPM_VR4 SkinBedder 41 06-26-2005 05:03 AM



All times are GMT -5. The time now is 06:00 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.2
Copyright © 1999 - 2008 Mp3Car.com Inc.Ad Management by RedTyger
Message Board Statistics