Theme Format ------------ FrontMotion Login Themes are Macromedia Flash files (.swf) containing a set of frames, variables and FSCommands outlined in this document. Currently we recommend generating Flash files files compatible with the Macromedia Flash plug-in V6 or above by developing using Macromedia Flash MX or above. Size and Aspect Ratio --------------------- Macromedia Flash is vector graphics therefore it is possible to use any document size. However we recommend using 1280 x 1024 to ensure that non-vector graphics will look smooth for the majority of the system out there and also to support various aspect ratios. By setting the document size to 1280 x 1024 and putting all major graphics element within that space, it ensures the theme will look well for 4:3 (1024 x 768, 1280 x 960), 5:4 (1280 x 1024) and other wide screen aspect ratio (16:9) monitors. For the rest of the document, we will use sizes based on 1280 x 1024. Background ---------- Define the color of your background using the document's background color. To use graphics and pictures as a background please keep in mind wide screen (16:9) monitors which will require a 1640 x 1024 graphic. Animation and Video ------------------- By using Flash's animation capability, FrontMotion Login is able to stand out from other login replacements, therefore we encourage animation inside themes for transition effects and simply for embellishments. However animation is 'expensive' in terms of CPU usage, and is proportionate to the area of the animation. Therefore it is important to keep large animation sequences short and not during user input. For example CommunicationOS lowers the quality during full screen animations to keep the frame rate up. When integrating video, be sure to output for Flash 6 or above. Any Flash supported video will work inside the theme. States ------ States are used by the 'backend' to display different user interfaces on the screen. They are created by naming frames in the main timeline. FMInitialize This state should be the first named frame in the main timeline to ensure fast initialization. It is used to define variables and perform any initialization your theme may require. At the end, it should call FSCommand("FMInitialized") to indicate the theme is ready for the backend to display other states. Allocate at least 4 frames. FMMessageClose, FMMessageOpen These two labels are not true states since they are never played. Instead they are 'called' by the backend at any state to open and close a Message popup object. Allocate one frame each. FMIdle, FMStartup, FMLoggingIn, FMLoggingOut, FMShutdown These states are non-input states and are used to indicate that the system is busy processing. One or more frames is required. FMWelcome The welcome state let the user know they need to press Ctrl+Alt+Del to log in to the computer. This state also displays FMLegalNoticeTitle and FMLegalNoticeText. One or more frames is required. FMLogon This state is used to gather FMUsername, FMPassword, and FMDomain for authentication. It should also contain various buttons to perform shutdown, reboot, etc. This state also displays FMLogonPrompt. FMUsername and FMDomain are usually pre-filled by the backend. FMDomain list contains a comma delimited list of domains. One or more frames is required. FMSmartCardLogon Similar to FMLogon, this state is used for smart card login that only requires a Pin instead of username/password. This is still under development. One or more frames is required. FMLocked Indicates the workstation is locked, it should display who (FMUsername and FMDomain) has locked the workstation and the instruction to press Ctrl+Alt+Del. One or more frames is required. FMSecurity This state contains various security functions for the logged on user. Minimally, there should be buttons to lock, logoff change password, task manager, and cancel. It can also displays who is logged on (FMUsername and FMDomain) One or more frames is required. FMUnlock Prompt the user for their FMUsername and FMPassword to unlock the computer. Should also indicate that administrators can logoff the current user. One or more frames is required. FMChangePassword Prompt the user so they can change password. It uses FMCPUsername, FMCPPassword, FMCPDomain, FMCPPasswordNew, and FMCPPasswordConfirm. The backend will try to fill in FMCPUsername, FMCPPassword, and FMCPDomain if possible (e.g. change password on login). One or more frames is required. FMAskOk General purpose dialog w/ an Ok button. Display FMAskTitle and FMAskText. One or more frames is required. FMAskYesNo General purpose dialog w/ a Yes and No button. Display FMAskTitle and FMAskText. One or more frames is required. Events ------ Events are sent using FSCommand(). For example FSCommand("FMBtnOK"). * FMInitialized - Sent as the last step in FMInitialize, argument should be "EventMode=1" * FMBtnOk - Used for most confirmation. * FMBtnCancel - Used for most cancellation. * FMBtnYes - Used in the FMAskYesNo state. * FMBtnNo - Used in the FMAskYesNo state. * FMBtnShutdown - Arguments can be the following: "Shutdown", "Reboot", "Hibernate", and "Standby". Only valid in FMLogin and FMSecurity states. * FMBtnLock - only valid in the FMSecurity state. * FMBtnLogoff - only valid in the FMSecurity state. * FMBtnTaskManager - only valid in the FMSecurity state. * FMBtnChangePassword - only valid in the FMSecurity state. * FMBtnSwitchUser - only valid in the FMLocked and FMUnlock state. * FMBtnChkdsk - Schedules a chkdsk on drive C and reboots. Only valid in the FMLogon state. * FMBtnPasswordResetWizard - Runs Windows XP's builtin Password Reset Wizard. Only valid in the FMLogon state. Variables --------- * FMProductVersion - Product and version string set by backend. e.g. "FrontMotion Login Tablet PC Edition (Version X.XX.XXX.XXXX)". * FMTabletPC - Set to 1 by backend if running on Tablet PC * FMPreview - Set to 1 by backend if theme should only show a preview * FMUsername - Username, sometimes pre-filled by backend. * FMUsernameList - Comma delimited list of usernames, set by backend. * FMPassword * FMDomain - Sometimes pre-filled by backend. * FMDomainList - Comma delimited list of domains, set by the backend. * FMCPUsername - Username for FMChangePassword, sometimes pre-filled by backend. * FMCPPassword - Password for FMChangePassword, sometimes pre-filled by backend. * FMCPDomain - Domain for FMChangePassword, sometimes pre-filled by backend. * FMCPPasswordNew * FMCPPasswordConfirm * FMMessageTitle - Used by message popups * FMMessageText - Used by message popups * FMLegalNoticeTitle - Set in FMWelcome * FMLegalNoticeText - HTML, Set in FMWelcome * FMLogonPrompt - Set in FMLogin * FMCanShutdownWithoutLogon * FMCanSwitchUser - Fast User Switching is turned on. * FMPortraitMode - Set to 1 if this movie support portrait mode - FMP* states. * FMSignaturePad - Set to 1 if this movie supports SignaturePad placement * FMSmartCard - Set to 1 if this movie supports FMSmartCardLogon. This is still under development. Commands -------- * FMRegLoadHKLMKey - loads a value from the registry. Note that the variable is set asynchronously and will not be available right after the command call. e.g. fscommand ("FMRegLoadHKLMKey", "\"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\", BuildLab, buildlab"); Installing Themes ----------------- Installation programs should query the key HKEY_LOCAL_MACHINE\SOFTWARE\FrontMotion\FMLogin\ThemeDir for the base directory where themes should be installed.