########################################################## xoblite bb2 | RC3 | 0.4.12.23 ########## [changed Blackbox.cpp 12/23/2004 qwilk] - Added two new core broadcast messages: @xoblite SetTheme/SetStyle - Please note that system and application environment variables can be used in the path, e.g.: @xoblite SetTheme $Blackbox$\ -> setting the default theme == in the themes menu @xoblite SetTheme $Blackbox$\themes\MyTheme -> setting a specific theme @xoblite SetStyle $CurrentTheme$\styles\MyStyle -> setting a style in the current theme folder [changed Toolbar.cpp, Systembar.cpp 12/17/2004 qwilk] - Mousewheel resizing of the toolbar/systembar is now only allowed if the control key is being held down (by popular demand) [changed PluginManager.cpp 12/7/2004 qwilk] - Disabled parsing of distributed (= plugin specified) AutoUpdate repository URLs as not updated repositories or duplicate URLs could potentially lead to version data conflicts (it was a good idea that is still valid, however at this point an up-to-date centralized repository like http://xoblite.net/plugins.txt simply works much better) - Instead, it is now possible to define multiple centralized plugin repository URLs (separated by space) in the default extensions.rc, in which case their contents will be parsed in top-down order (i.e. the first file with have precedence over the following file(s), etc.) [changed Blackbox.cpp 12/2/2004 qwilk] - xoblite will now remember and apply the latest selected theme when starting up - Selected theme is saved as xoblite.selected.theme: in the "default" extensions.rc [changed Systembar.cpp 11/28/2004 qwilk] - Fixed a bug that caused systray icon tooltips to be shown even if the systray was hidden [changed TrayManager.cpp 11/28/2004 qwilk] - The contents of a balloon tooltip are now displayed in the toolbar.windowLabel area (while waiting for balloon tooltips to be fully implemented...) [changed Systembar.cpp 11/18/2004 qwilk] - Slightly improved icon saturation/hue performance -> lower CPU load on older computers [changed Systembar.cpp/h, Menu.cpp/h 11/17/2004 qwilk] - Implemented caching of menu.frame gradients for *substantially* improved menu scrolling speed! :D - Implemented caching of taskbar button gradients (previously only the background was cached) [removed HeaderItem.cpp/h, DesktopMenuItem.cpp/h 11/16/2004 qwilk] - Merged the header item functionality into TitleItem and got rid of HeaderItem.cpp/h - Moved the DesktopMenuItem.cpp/h code into DesktopMenu.cpp/h for improved readability [changed HeaderItem.cpp 11/16/2004 qwilk] - Made it possible to once again close a menu by right clicking on its title (requested by Pitkon) [changed Desk.cpp, StylesMenu.cpp/h, MenuMaker.cpp, Menu.cpp, added ThemesMenu.cpp/h 11/16/2004 qwilk] - Updated the keyboard modifier + right click on desktop actions for people with 2 button mice - With the mid click styles menu feature enabled: * Alt+RightClick -> styles menu * Shift+RightClick -> themes menu * Alt+Shift+RightClick -> workspaces menu - With the mid click styles menu feature disabled: * Alt+RightClick -> workspaces menu * Shift+RightClick -> styles menu * Alt+Shift+RightClick -> themes menu - Moved the styles/themes menu code into separate StylesMenu/ThemesMenu files (planned) [changed Settings.cpp 11/16/2004 qwilk] - Fixed a missing "else" that prevented the taskbar from being manually set to "Icons" mode - Minimum toolbar/systembar width is now limited to 30% (please note that you can use the visibility menu to hide the core UI elements altogether) ########################################################## xoblite bb2 | RC2 | 0.4.11.12 ########## [changed PluginManager.cpp 10/30/2004 qwilk] - "Safe mode": Hold down the control key to disable loading of plugins at startup - BEWARE: Do not load any new plugins when running in safe mode or you will overwrite the contents of your plugins.rc! (restart xoblite after manually removing the troublesome plugin from your plugins.rc and the remaining plugins will be loaded normally) [changed Blackbox.cpp 10/30/2004 qwilk] - Added show/hide/toggle broams for the toolbar, systembar, slit and plugins: @xoblite Toolbar Show/Hide/Toggle @xoblite Systembar Show/Hide/Toggle @xoblite Slit Show/Hide/Toggle @xoblite Plugins Show/Hide/Toggle - Added a broam to open up files with the user preferred editor: @xoblite Edit - Added a broam to perform a paused restart of the shell: @xoblite PausedRestart (Note to developers: Using BB_RESTART WPARAM set to 1 for paused restart, 0 for normal restart) [changed Blackbox.cpp, BBApi.cpp 10/29/2004 qwilk] - Added scripting support through a new core broadcast message: @Script [|...|] - A script can include regular shell commands, bro@ms and Pause - Multiple script commands are separated by | and the script is encapsulated in [] brackets - Example: (please note that a script should be a single line, wrapped for readability only!) @Script [@xoblite LoadPlugin "$CurrentTheme$\plugins\MyPlugin\MyPlugin.dll"|Pause 4000| @xoblite UnloadPlugin "$CurrentTheme$\plugins\MyPlugin\MyPlugin.dll"] - Core @Script support can be disabled from the Configuration menu (theme specific setting, saved as xoblite.disable.script.support: in extensions.rc) [changed Blackbox.cpp 10/29/2004 qwilk] - The rootCommand is now executed in a separate thread for improved performance [changed Blackbox.cpp, PluginManager.cpp 10/28/2004 qwilk] - Added two new core broadcast messages: @xoblite LoadPlugin/UnloadPlugin - The path may include xoblite's application environment variables, e.g.: @xoblite LoadPlugin "$CurrentTheme$\plugins\MyPlugin\MyPlugin.dll" @xoblite UnloadPlugin "$CurrentTheme$\plugins\MyPlugin\MyPlugin.dll" [changed Desk.cpp, BBApi.h 10/28/2004 qwilk] - A new API message BB_DRAGTODESKTOP (10510) is now sent when something is dropped on the desktop - The LPARAM specifies the full path of the dropped file (i.e. relay of the WM_DROPFILES WPARAM) - A plugin could subscribe to this message to get notified when something is dropped on the desktop, e.g. a desktop icons plugin could create new shortcut icons for dropped files with extension .exe (thanks for the brainstorming session frantic!) [changed Blackbox.cpp 10/26/2004 qwilk] - It is now possible to send broams from external applications using Blackbox.exe -broam [changed Blackbox.cpp, Settings.cpp 10/20/2004 qwilk] - The "About xoblite..." messagebox switch is now Blackbox.exe -about (makes more sense, though -help is still supported "just in case"... ) [changed *.cpp/h 10/19/2004 qwilk] - Verified that xoblite can be compiled cleanly with the /clr compiler option (for more information see http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/movNETWFX.asp however please note that I will not be using /clr for xoblite bb2) [changed MenuMaker.cpp, FolderItem.cpp/h, Settings.cpp, CommandItem.cpp, Blackbox.cpp 10/18/2004 qwilk] - Final names for the new menu bullets decided... (Triple/Comment/Grid - see below) - Changed the "Force font shadows" extensions.rc setting to xoblite.force.font.shadows: and the matching core broadcast message to @xoblite ToggleForceFontShadows (oh btw, please note that I have updated the original changes.txt entries below to avoid end-user confusion... ) [changed Toolbar.cpp, PluginManager.cpp, Settings.h 10/18/2004 qwilk] - A "<->" icon will now be displayed in the toolbar.windowLabel area when checking for updates [changed Settings.cpp, CommandItem.cpp, Blackbox.cpp, PluginManager.cpp 10/17/2004 qwilk] - Separated handling of extensions.rc settings into global settings and theme specific settings - Theme specific settings (e.g. systembar placement) are read from the theme's extensions.rc, while global settings (e.g. preferred editor) are read from the "default" extensions.rc (-> the one located in the Blackbox or $UserAppData$\Blackbox directory) - See xoblite bb2's default extensions.rc for more information... [changed PluginManager.cpp 10/13/2004 qwilk] - Fixed a missing "else" statement that was preventing old non-beginPluginEx plugins (e.g. BBIcons) from docking to the slit (thanks for the heads-up thewayofzen!!!) [changed PluginManager.cpp/h, Blackbox.cpp, CommandItem.cpp 10/9/2004 qwilk] - AutoUpdate now runs in a separate thread - Added periodic checking and a welcome message for first-time users... =] - Last checked date saved as xoblite.checked.for.updates: in extensions.rc [changed FolderItem.cpp/h, MenuMaker.cpp 10/1/2004 qwilk] - Added three exclusive new menu bullets! :D * Triple: Three vertical (for menu.frame) or horizontal (for menu.hilite) lines * Comment: Two diagonal lines (somewhat similar to the // used when adding comments to code) * Grid: A 2x2 grid (i.e. 2 rows with 2 columns each) [Alternatives that didn't quite make it to the last round, in no particular order... ;] <3line/ThreeLine/Lines>, <2slash/TwoSlash/Slash>, <4square/Window/Waffle/Quad> ] - Falling back to the standard square bullet if style extensions are disabled (deemed a more representative replacement for the new bullets than not drawing a bullet at all, which is the default normally used) [changed Toolbar/Systembar/SlitMenu.cpp, Blackbox.cpp 9/27/2004 qwilk] - Added transparency editing menu items to the toolbar/systembar/slit menus, and made changes to the transparency alpha value for these UI elements effective immediately (please note that changes to the transparency alpha value for the menu are still effective after restart due to the current menu implementation) - Added saturation/hue editing menu items to the systembar's taskbar+systray submenus, as well as four new equivalent core broadcast messages: @xoblite Systembar TaskbarSat <0-255> @xoblite Systembar TaskbarHue <0-255> @xoblite Systembar SysTraySat <0-255> @xoblite Systembar SysTrayHue <0-255> [changed CommandItem.cpp 9/26/2004 qwilk] - Mid clicking on a menu [exec] or [style] item now copies the path of the item to the clipboard - Tip: Mid click on an image item (a menu [exec] item with extension .jpg/png/bmp/gif/tif/jpeg) to copy its path to the clipboard, then paste it into your style's rootCommand! :D [changed StringItem.cpp/h, MenuMaker.cpp, BBApi.cpp 9/24/2004 qwilk] - Added support for string editing menu items (MakeMenuItemString as defined by grischka/bbLean) - The title of the item is followed by a colon, which is followed by the string in <> brackets - Right click on the item to activate the edit box, left click on the "OK" button to execute, or right click on the "OK" button to cancel/deactivate the edit box - Only a single menu item string edit box is allowed to be active at a time (i.e. you need to execute or cancel/deactivate an active edit box before you can activate another) [changed Blackbox.cpp 9/23/2004 qwilk] - Re-grouped the core bro@ms by UI element for better consistency and easier expandability ---------- @xoblite Toolbar Transparency <1-255> ---------- @xoblite Systembar Transparency <1-255> @xoblite Systembar ToggleSysTray @xoblite Systembar TaskbarMode ---------- @xoblite Slit Transparency <1-255> ---------- @xoblite Menu SetRCPath @xoblite Menu Transparency <1-255> ---------- - Please note the new menu bro@m which makes it possible to change the path to the .rc on the fly - assign it to e.g. a hotkey, a BBIcon or a BBInterface button, and change menu contents depending on the task! Why limit yourself to a single menu setup? :D [changed ConfigMenu.cpp/h, Blackbox.cpp 9/22/2004 qwilk] - Added a "Transparency" configuration submenu (using the new integer editing menu items) - Added four new core broadcast messages (old syntax removed - see revised versions above) - Alpha value changes become effective after restart [changed CommandItem.cpp, BBApi.cpp 9/15/2004 qwilk] - Added support for integer editing menu items (MakeMenuItemInt as defined by grischka/bbLean) - The title of the item is followed by a colon, which is followed by the value in <> brackets - Values are changed by *right* clicking the menu item (which also keeps the menu open for sequential clicking [similar to image menu items, see related entry below], holding down the Ctrl key increases/decreases the value by 10 per click instead of the default 1 per click); clicking the left hand side of the menu item decreases the value, while clicking the right hand side of the menu item increases the value [changed *.cpp/h 9/6/2004 qwilk] - Changed all xoblite URLs from http://desktopian.org/bb/ to http://xoblite.net/ [changed Slit.cpp/h 9/4/2004 qwilk] - Second generation puzzle positioning... :D - Each plugin row/column is now centered horizontally/vertically [changed PluginManager.cpp 9/3/2004 qwilk] - AutoUpdate now checks if there is a xoblite update available online as well - Choosing to download an update will (for now) take you to the xoblite website to manually download the latest build (mostly to reduce maintenance overhead, however this could possibly change in a future release...) [changed *.cpp/h 8/29/2004 qwilk] - Lots of minor under-the-hood changes I've forgotten to add during the past year... - ...yup, today one year has passed since the release of xoblite bb1! - Ehm, perhaps it's time to get this bab...bb2 off the ground? ;] [changed BBApi.cpp 8/29/2004 qwilk] - Optimized ParseLiteralColor... - ...only to realize that the frickin' thing adds 17kB to the filesize due to the many absurd colours that no one ever uses!!! (blanchedalmond anyone? cornflowerblue? darkgoldenrod3? lightgoldenrodyellow? papayawhip? whitesmoke?) - Anyway, what I've done now is to comment out the "version" colours (i.e. keeping "red" but commenting out "red1/2/3/4") as a trade-off between stupid legacy support and reducing bloat, which reduced the filesize by no less than 12kB (!) [changed Desk.cpp, StylesMenu.cpp 8/28/2004 qwilk] - Changed the mid click on desktop actions to make room for the themes menu: - With the mid click styles menu enabled: * MidClick -> styles menu * Alt+MidClick -> themes menu * Alt+Shift+MidClick -> workspaces menu - With the mid click styles menu disabled: * MidClick -> workspaces menu * Alt+MidClick -> styles menu * Alt+Shift+MidClick -> themes menu - Ctrl+MidClick toggles the plugins shown/hidden - Ctrl+Shift+MidClick toggles the slit shown/hidden [changed Menu.cpp/h, MenuMaker.cpp 8/27/2004 qwilk] - Added mousewheel scrolling of menus taller than the screen - Mousewheel scroll speed -> xoblite.menu.wheelSpeed: in extensions.rc [changed HeaderItem.cpp 8/27/2004 qwilk] - Right clicking on a menu [exec] item with extension .jpg/png/bmp/gif/tif/jpeg no longer closes the menu (it used to work like this when I first coded it, got lost somewhere along the way, but now it's back... ) - This makes it possible to e.g. browse your wallpapers folder in a quick'n'easy fashion! :D [changed Slit.cpp/h 8/26/2004 qwilk] - Manual positioning of the slit using drag only (i.e. *not* holding down ctrl) is no longer supported since it interfered with the autohide functionality (well, it's supported when autohide is disabled, but not if autohide is enabled...) - Drag'n'drop of plugin .dll's to the slit is now supported (please note that this will load the plugin in the "normal" way, i.e. without &-loading, which means the plugin will have to support beginPluginEx to be able to dock to the slit later on) [changed Settings.cpp/h, Slit.cpp/h, SlitMenu.cpp, CommandItem.cpp 8/26/2004 qwilk] - It is now possible to configure if the slit window should snap to the screen edges when in manual positioning mode (configurable from the slit menu, item visible only when in manual positioning mode, setting saved as xoblite.slit.snapToEdges: in extensions.rc) [changed PluginManager.cpp/h, Desk.cpp/h, BBApi.h 8/26/2004 qwilk] - Added *experimental* support for docking of plugins/stuff to the desktop, piggy-backing on the already supported dock to slit mechanism... =] - If a line in plugins.rc begins with > the core will pass the desktop HWND to the plugin instead of the slit HWND (and the plugin could of course check the name of the window to know where it is to be docked: "BBSlit" or "DesktopBackgroundClass") - Drag'n'drop of plugin .dll's to the desktop is also supported (note that this will automatically add an > loading config line to plugins.rc) - Note to developers: This feature is only supported when using the beginPluginEx entry point! - Added three more general BBAPI define's for docking messages to avoid developer confusion : DOCK_ADD == SLIT_ADD, DOCK_REMOVE == SLIT_REMOVE, DOCK_UPDATE == SLIT_UPDATE - Again, this experimental feature is just a request for comments and may be removed in a future release due to lack of interrest from developers (I'm not fully convinced myself yet! =] ) - ...feedback please!!! [changed Slit.cpp, SlitMenu.cpp 8/19/2004 qwilk] - Manual positioning of the slit using drag/ctrl+drag is now fully supported! :D (saved as session.screen0.slit.placement: Manual x y in blackbox.rc) [changed Workspaces.cpp 8/3/2004 qwilk] - Reintroduced support for magicDWord sticky windows for backwards compatibility (some plugins, including BBCalendar and BBSysMon, were apparently still using it) [changed BBApi.cpp 8/2/2004 qwilk] - Improved support for malformed config/style parameter formatting - Merged the FindLine and ScanLine functions into ReadValue (readability + performance) [changed Settings.cpp/h, BBApi.cpp, ConfigMenu.cpp 7/8/2004 qwilk] - Introducing write protection... :D - When write protection is enabled all calls to the core's Write* functions will be blocked, i.e. any changes to the configuration will not be saved to disk (obviously this will not work for a possible "rogue" plugin making use of its own saving routines, but so far I haven't noticed any problems with modern plugins) - A write protection "lock" icon will be displayed in the toolbar.windowLabel area if enabled - Added a new core broadcast message: @xoblite ToggleWriteProtection - Could be used to e.g. write protect themes before distribution, keep your better half from messing up your *box config, or just to try out things without losing that perfect setup... =] [changed PluginManager.cpp 7/8/2004 qwilk] - If a "plugins" folder is present in the current theme folder, the load plugin dialog will use this folder as initial folder instead of the main plugins folder (normally c:\Blackbox\plugins) [changed PluginManager.cpp, Settings.cpp/h, Blackbox.cpp 7/8/2004 qwilk] - Added a new application environment variable - $CurrentTheme$ - pointing to the current theme folder (e.g. c:\Blackbox\themes\MyTheme) -> avoiding hard-coded paths within themes - xoblite will automatically replace the current theme folder path with $CurrentTheme$ when writing to plugins.rc after loading a plugin within the current theme folder (e.g. c:\Blackbox\themes\MyTheme\plugins\plugin.dll becomes $CurrentTheme$\plugins\plugin.dll) or when writing to blackbox.rc after switching to a style within the current theme folder (e.g. c:\Blackbox\themes\MyTheme\styles\MyStyle becomes $CurrentTheme$\styles\MyStyle) - Finally, manually adding $CurrentTheme$ to the menu.rc path in blackbox.rc and to relevant paths in extensions.rc (e.g. xoblite.stylesFolder: $CurrentTheme$\styles) as well as (if you're using a wallpaper) modifying the bsetbg/bsetroot rootCommand in the chosen style to use $CurrentTheme$ makes the theme fully portable and distributable! :D [changed StylesMenu.cpp, CommandItem.cpp, MenuMaker.cpp, Settings.cpp/h, Blackbox.cpp 7/3/2004 qwilk] - Introducing xoblite *THEMES*! :D - Much like a theme in LiteStep, a xoblite theme is a full set of configuration .rc files, plugins (including related files), styles and wallpapers located in a folder - Themes can be switched on the fly from the new "themes" menu (Alt+MidClick on the desktop if the mid click styles menu is enabled, or Alt+Shift+MidClick if it's disabled) -> i.e. changing all aspects of the *box interface with a single click of a menu item! :D - The themes menu is automatically populated with the names of the folders inside the main themes folder, defined by xoblite.themesFolder: in extensions.rc (e.g. xoblite.themesFolder: $Blackbox$\themes) - Furthermore, a themes menu entry named is automatically created which points to the "normal" location of the core configuration files, i.e. in $UserAppData$\Blackbox or the same folder as xoblite itself (please note that the default theme is always applied when first starting xoblite) - The themes menu can also be inserted into the main menu: [themesmenu] (themes) - Using a new application environment variable (see changes entry above!) themes can be made fully portable and distributable (yup, something for the "sidebar" people! ) - See example theme included with the public release of xoblite bb2 ("when it's ready" :P ) - Another example: Take the (often discussed on the forums) issue of AlwaysOnTop *box elements when playing games - simply create a theme with no elements AlwaysOnTop and few plugins loaded and switch to that theme when playing games, while keeping your usual default theme as bloated as always! ;) - Finally, please note that a theme does not /have/ to be a fully portable theme with plugins and wallpapers located inside the theme folder. It could be just a copy of your normal blackbox.rc, extensions.rc and plugins.rc - a "snapshot" of a configuration you like, for example. Perhaps a theme for each family member? ...your call! :D [changed PluginManager.cpp 6/12/2004 qwilk] - Fixed a fugly AutoUpdate bug (was using the relative path of the plugin, as specified in plugins.rc, when saving the downloaded files... oops! ) - Now falling back to the [plugin].archive definition if [plugin].files is not defined (updated repository/metafile syntax, see e.g. http://xoblite.net/plugins.txt) - Now asks if you want to download any available updates after a CheckForUpdates - It is now possible to manually force an update by holding down Ctrl while selecting a plugin [changed PluginManager.cpp, Systembar.cpp 6/11/2004 qwilk] - After downloading an AutoUpdate in .zip format, and after clicking OK in the following MessageBox, xoblite will now automatically open an Explorer window where the .zip file is selected to speed up the manual updating process... =] - Merged in an old bb4win fix that should prevent a hanging application from locking up the shell by using a 200 milliseconds timeout when fetching task icons (yeah I know, long overdue!) [changed Blackbox.cpp 6/7/2004 qwilk] - Merged in a really nice function from LiteStep: IsFirstRunThisSession() (from LiteStep's StartupRunner.cpp, slightly modified for xoblite) - This function sets a volatile flag in the registry the first time it is called, which is then used to decide if the startup applications should be run or not (i.e. the first time xoblite is started after login they are run, but only then) - This makes the -nostartup switch obsolete, but I am keeping it for now just in case... =] [changed Blackbox.cpp, TrayManager.cpp 6/7/2004 qwilk] - Merged in two really nice patches from LiteStep 0.24.7 RC3 that... - Fixes the logon delay when using the WinXP Welcome screen (courtesy of Nicolas Escuder) - Enables the keyboard locale/layout tray icon on pre-XP systems (now creating TrayNotifyWnd etc.) [changed Blackbox.cpp 5/30/2004 qwilk] - Added a new core broadcast message: @xoblite ToggleForceFontShadows [changed PluginManager.cpp, BBApi.cpp 5/13/2004 qwilk] - DownloadFile() now accepts multiple URLs as input (using space as the delimiter), in which case case it will merge all the files together into a single output file! :D - Improved support for distributed plugin repositories/metafiles for automatic updating [changed ConfigMenu.cpp, CommandItem.cpp, Settings.cpp 5/13/2004 qwilk] - Added a configuration menu item ("Force font shadows") to toggle font shadows on/off for all elements (saved as xoblite.force.font.shadows: in extensions.rc) - A way of configuring font shadows in the style has been implemented and may be officially supported later on, but will have to be discussed with the other *box developers first (the new API function DrawTextWithShadow() is currently not exported for the same reason) [changed Settings.cpp/h, Toolbar.cpp, Systembar.cpp, HeaderItem.cpp, TitleItem.cpp 5/9/2004 qwilk] - Added font (=text) shadow support for all core UI elements! :D - Currently always enabled, will probably make it an option later on... =] [changed *.cpp/h 5/5/2004 qwilk] - Now using the compiler etc. from Microsoft's Visual C++ Toolkit 2003 - Minor changes where the new compiler issued warnings... [changed Toolbar.cpp 5/1/2004 qwilk] - The slit will now be toggled shown/hidden instead of the systembar if the Alt key is held down while mid clicking the toolbar [changed Blackbox.rc, BBApi.cpp, Blackbox.cpp 5/1/2004 qwilk] - Changed FileVersion to contain the full version string, e.g. "bb2 | beta10 | 0.4.5.1" - Changed ProductVersion to contain only the major version, e.g. "bb2" - GetBBVersion() now uses ProductVersion instead of FileVersion (and since MenuMaker calls this function if the [begin] argument is empty, this means that the menu title will show only the major version, which is preferable to keep down the size of the menu) - The about box now extracts FileVersion directly instead of calling GetBBVersion() which means it will display the full version string (see above) [changed PluginManager.cpp/h, BBApi.cpp/h, CommandItem.cpp, PluginMenu.cpp 4/26/2004 qwilk] - Implemented a mechanism for automatic updating of plugins [from now on simply referred to as AutoUpdate] in joint development with Kaloth (http://www.geocities.com/madant8/) - A check for updates can be triggered from a new item in the configuration/plugins menu or using a new core broadcast message: @xoblite CheckForUpdates - When a check for updates is triggered xoblite downloads one or several lists of currently available plugins (including a primary one known as the central plugin repository/metafile - by default set to http://xoblite.net/plugins.txt - and optionally one or several distributed repositories/metafiles, see below) - Each such list specifies e.g. the version number and release date for all plugins currently available in the repository, information which is matched against that of the currently loaded plugins (please note that it is virtually impossible to make the process intelligent enough to understand all version string / release date variants, so for now (at least) it will trigger on a simple mismatch between the two) - If one or several updates are found available, the user is presented with a MessageBox asking him/her if he/she wants to download any of the available updates (in addition to the version information mentioned above, the metafile also specifies the URL(s) of the file(s) to download for each plugin) - Files are then downloaded using a new (for now not exported) function: DownloadFile() (please note that this function currently isn't multithreaded due to several reasons; this could possibly change in a future release but for now you'll have to wait for a check for updates to finish before doing anything else, which shouldn't be a problem as long as you're on a reasonably fast connection... ) - A plugin may also specify a version list URL of its own (known as a distributed repository/metafile) by utilizing the new pluginInfo field PLUGIN_UPDATE_URL (8), which will then have precedence over the central repository/metafile - Hmm, I realize that was a lot of boring technical stuff, so I'll let you try it out for yourselves, it is really quite self-explanatory... ;] [changed Settings.cpp/h, Toolbar.cpp, Systembar.cpp 4/19/2004 qwilk] - Added parsing of toolbar.fontHeight < 12 (the default) [changed PluginMenu.cpp 4/4/2004 qwilk] - Fixed a potential issue related to pluginInfo: The original idea was that the plugin developer would leave out the PLUGIN_BROAMS case altogether if he/she did not require the bro@m list submenu (which also made the feature automatically backwards compatible), however this caused xoblite to crash if the plugin happened to return an empty string [changed MenuMaker.cpp/h, BBApi.cpp, PluginManager.cpp/h, Blackbox.cpp 4/4/2004 qwilk] - Finished the MakeNamedMenu dummy function, behaves like "normal" plugin menus now... - Removed the plugin menu stuff in PluginManager.cpp/h since it was no longer needed once I got rid of those &#%! pinned menus... - Now compatible with the latest version of BBTray (bb4win nightly builds page -> http://bb4win.sourceforge.net/latest/Latest/ ) [changed Slit.cpp 3/28/2004 qwilk] - Fixed a minor bug in the maximum width/height calculations for puzzle positioning - Changed the minimum padding between slit plugins to 2 pixels (bevelWidth+1>=2) [changed BBApi.cpp/h, MenuMaker.cpp 3/17/2004 qwilk] - Added a dummy MakeNamedMenu function for plugin compatibility reasons (currently this will disable the plugin's menu, but I do not have time/energy to fix it properly atm) - Fixed a minor bug where a gradient was parsed as a solid if color == colorTo [changed Settings.cpp/h, Slit.cpp, Toolbar.cpp, CommandItem.cpp 2/28/2004 qwilk] - Added support for the following style extensions defined in fluxbox: slit: / slit.color: / slit.colorTo: toolbar.borderWidth: / menu.borderWidth: / slit.borderWidth: toolbar.borderColor: / menu.borderColor: / slit.borderColor: - Improved menu rendering (a bit more dynamic while still maintaining the xoblite "compact" menu appearance) [changed Blackbox.cpp, Settings.cpp/h, Systembar.cpp, SystembarMenu.cpp, CommandItem.cpp 2/22/2004 qwilk] - Added an option to put the systembar (if docked) either first or last in the slit upon xoblite start/restart (configurable from the systembar menu, item visible only if docked to the slit, setting saved as xoblite.systembar.firstInSlit: in extensions.rc) - Fixed a minor positioning error related to puzzle positioning - Slit orientation is no longer automatically set to horizontal when docking the systembar (legacy "for convenience" code from before the introduction of slit puzzle positioning) [changed Slit.cpp 2/19/2004 qwilk] - WM_MOUSEWHEEL messages sent to the slit window (which is the parent window of the docked plugin windows) are now relayed to the plugin window below the mouse pointer... - ...which makes it possible to use the mousewheel to change e.g. workspaces in BBPager or the currently displayed WorldTime in BBWorldTime - even if the plugin is docked! :D [changed Settings.cpp/h, Systembar.cpp, SystembarMenu.cpp, CommandItem.cpp 2/8/2004 qwilk] - An idea courtesy of bladestaylor and his plugin SystemBarEx 2.1: It is now possible to disable icon saturation/hue for the active task from the systembar menu (saved as xoblite.taskbar.active.SatHue: in extensions.rc) [changed MenuMaker.cpp 2/7/2004 qwilk] - The .style extension is now automatically removed from any [style] item titles (according to nivenh's proposal) [changed BBApi.cpp/h 2/6/2004 qwilk] - Added (temporary?) support for a few of grischka's new API functions implemented in recent nightlies of bb4win as well as bbLean: GetSettingPtr (including the extended StyleItem definition), MakeStyleGradient, CreateBorder, CreateStyleFont, and changed the definition/implementation of the Menu functions... - Please note that IMHO, new functions should only be added to an API on an explicit basis, i.e. only if there is no other way to support the required functionality (and this is simply not true for e.g. MakeStyleGradient, which is merely a 1-to-1 replacement for an already existing function - MakeGradient - which is still essential functionality as you often need to tweak one or several of the input parameters!) [changed Settings.cpp/h, ConfigMenu.cpp, CommandItem.cpp 2/3/2004 qwilk] - It is now possible to disable parsing of all menu [separator] items ("Menu separators" in the configuration menu, saved as xoblite.menu.separators: in extensions.rc) [changed Settings.cpp/h, BBApi.cpp 2/3/2004 qwilk] - Every call to Read* will now try fetching the requested value from the core buffer if the file pointer is set to NULL, "" (empty string) or the path of the current style - This functionality is totally transparent to the plugins, but has all the benefits of the previously introduced core buffer - faster style changes since each call to Read* does not have to access the file on disk, taking advantage of the core's substitution mechanisms for e.g. fonts, etc. - Please note that if the requested value can not be found in (or is supported by) the core buffer, as for e.g. indirect fetching of Color/Int style parameters using ReadString, it will be read from the file as before [changed Settings.cpp/h, Systembar.cpp, CommandItem.cpp 2/2/2004 qwilk] - Saturation/hue can now be set independently for the taskbar and the systray using the new settings xoblite.taskbar.saturation: and xoblite.taskbar.hue: in extensions.rc (by default set the same value as their systray equivalents) - Renamed the extensions.rc setting xoblite.systembar.currentOnly to xoblite.taskbar.currentOnly (for consistency, it's a taskbar feature after all) [changed DesktopMenu.cpp/h, DesktopMenuItem.cpp/h, MenuMaker.cpp, CommandItem.cpp 2/1/2004 qwilk] [removed TaskFolder.cpp/h, TaskItem.cpp/h 2/1/2004 qwilk] - Fixed the (in recent betas) non-working workspaces menu... - ...and got rid of TaskFolder.cpp/h and TaskItem.cpp/h in the process! - A task item is now a normal CommandItem, but with the command set to and the argument set to a hexadecimal string representation of the window's HWND... - ...which is then converted back to HWND in CommandItem.cpp! Pretty cool, eh? :D - Hmm, the file size is now down to 273kB, just 1kB larger than xoblite bb1! =] [changed Systembar.cpp/h, SystembarMenu.cpp, Settings.cpp/h, CommandItem.cpp 2/1/2004 qwilk] - Implemented a "Bars+Icons" taskbar display mode (by popular demand, similar to BBSBEx) - Current taskbar mode is now saved as xoblite.taskbar.mode: in extensions.rc, replacing the old setting xoblite.systembar.iconMode (now obsolete) - Merged the old taskbar/systray icon painting code into a new function - DrawSatHueIcon [changed MenuMaker.cpp, TitleItem.cpp 1/31/2004 qwilk] - Added menu separators in between folders and regular items for [path] etc. [changed MenuMaker.cpp/h, BBApi.cpp, ConfigMenu.cpp etc 1/31/2004 qwilk] - Added a new function to MenuMaker - CreateMenuItem - which is now used when creating all "regular" menu items (e.g. [exec], [separator] and [nop]) within xoblite, thereby removing a *lot* of duplicated code for the toolbar, systembar, slit, config and plugin handling menus. Thanks to this new approach, the xoblite bb2 file size is now 10kB smaller - roughly the size of bb1, despite all the new functionality!!! :D [changed Systembar.cpp/h 1/31/2004 qwilk] - Oops, was repainting the entire systembar when a window title changed... =] (no wonder it flickered sometimes when using bar mode - thanks for the heads-up NC-17!) [changed TitleItem.cpp, Settings.cpp/h 1/31/2004 qwilk] - Added support for a new style extension: menu.separator.color (see info below) - Fully backwards compatible (uses menu.frame.textColor setting if not specified) [changed TitleItem.cpp, MenuMaker.cpp, ConfigMenu.cpp etc 1/30/2004 qwilk] - Introduced a new menu command - [separator] - which looks really nice IMHO... :D - Now using it in the toolbar, systembar, slit, configuration and plugin handling menus [changed BBApi.cpp/h, TrayManager.cpp/h, Blackbox.cpp 1/30/2004 qwilk] - Added support for external system trays (e.g. BBTray, but not BBSystemBarEx because that plugin also requires external taskbar support) - Currently compatible with http://bb4win.sourceforge.net/latest/August/05-08-03/BBTray.zip as the latest version of BBTray requires some additional API functions (will be fixed later) [changed BBApi.cpp 1/30/2004 qwilk] - Merged in and slightly modified the new bb4win Tokenize function (recently rewritten by grischka) which should fix potential issues when using Tokenize with delimiters other than the space character (i.e. this did not affect BBTokenize, which is probably why it went unnoticed for so long...) [changed CommandItem.cpp, Toolbar/Systembar/Slit/Config/PluginMenu.cpp 1/29/2004 qwilk] - Changed all internal menu commands to use e.g. as command and the setting to change as argument (makes more sense and works better with right clicks) [changed BBApi.h 1/29/2004 qwilk] - Added defines reserved by bb4win for reference (i.e. "do not use these values" ) - Changed BB_MINIMIZE to BB_WINDOWMINIMIZE (makes more sense) [changed Toolbar.cpp 1/29/2004 qwilk] - Moved the "right-pointing" alternative toolbar arrows one pixel to the right... =] [changed Blackbox.cpp, Settings.cpp/h, TrayManager.cpp/h, Workspaces.cpp 1/28/2004 qwilk] - Now specifying SHTDN_REASON_FLAG_PLANNED on logoff/shutdown/reboot (WinXP only) - Added a few more object checks to avoid possible access violations... [changed FolderItem.cpp 1/23/2004 qwilk] - Fixed overlap alignment for submenus when using styles with non-default title font height [changed CommandItem.cpp 1/21/2004 qwilk] - Right clicking on an image item in the menu now works like drag'n'drop to the desktop: The image is tiled by default, centered if holding down Ctrl, and stretched if holding down Shift while clicking [changed Settings.cpp/h, Systembar.cpp, SystembarMenu.cpp/h 1/18/2004 qwilk] - It is now possible to show/hide (i.e. not disable) the systray from the systembar menu (saved as xoblite.systray.hidden: in extensions.rc) - Renamed extensions.rc setting xoblite.taskbar.disable to xoblite.taskbar.hidden for consistency (after all, the taskbar is not disabled, only hidden), and added a systembar menu item for this one as well [changed MenuItem.cpp/h, CommandItem.cpp/h, SpecialFolder.cpp/h 1/16/2004 qwilk] - It is now possible to right click on certain menu items... [path] item -> open up the chosen folder in Explorer [style] item -> open the chosen (not the current) style in your preferred editor [exec] item with extension .jpg/png/bmp/gif/tif/jpeg -> set as wallpaper using bsetbg [exec] item other than above -> open an Explorer window where the file is selected [changed TrayManager.cpp/h 1/14/2004 qwilk] - Updated system tray, partly based on the iShell implemenation (thanks ironhead) [changed Settings.cpp/h 1/9/2004 qwilk] - Now using the older SHGetSpecialFolderPath instead of SHGetFolderPath, let's see if this one is more compatible with older systems... :) [changed Menu.cpp 1/1/2004 qwilk] - Fixed a memory leak caused by using FindFirstFile and not FindClose'ing afterwards [changed Settings.cpp/h, MenuMaker.cpp 12/28/2003 qwilk] - Added limited (temporary?) support for menu.title/menu.frame/toolbar.fontWeight (normal by default + bold = the same behaviour as the current bb4win implementation) - ...and no, I can not say I like the fact that it is a separate style parameter, but... ;) [changed Workspaces.cpp 12/28/2003 qwilk] - MoveWindowToNext/MoveWindowToNext now checks if the window to be moved is sticky or not [changed BImage.cpp/h 12/28/2003 qwilk] - Substantially improved rendering performance for sunken gradients! (got rid of invert()) - Rewrote bevel1/2 for "pixel perfect rendering" of bevels... =] [changed Blackbox.cpp 12/20/2003 qwilk] - Integrated DDE functionality (ie. it is no longer necessary to load the BBDDE plugin) - Using an undocumented API, courtesy of Tim DeWolf and the GeoShell Development Team [changed Blackbox.cpp, Toolbar.cpp/h, Systembar.cpp/h 12/19/2003 qwilk] - xoblite now only saves the toolbar/systembar widths to the .rc's on restart if their widths have changed (using mousewheel resizing) - In other words, you can now either manually edit the .rc's + restart xoblite, or use mousewheel resizing of the toolbar/systembar widths [changed FolderItem.cpp, CommandItem.cpp 12/19/2003 qwilk] - Tweaked bullet and indicator position for other font sizes than default - Fixed a bug where the title font was used for the frame as well if the title and frame font sizes were different... [changed Systembar.cpp/h, Settings.cpp/h, SystembarMenu.cpp, CommandItem.cpp 12/18/2003 qwilk] - Added the option to show only tasks on the current workspace on the taskbar (saved as xoblite.systembar.currentOnly: in extensions.rc) [changed Systembar.cpp, Settings.cpp 12/15/2003 qwilk] - Fixed a minor bug related to inactive task text colour extraction (...do not forget to set toolbar.textColor in your styles, because that's used for inactive task text if neither of windowlabel/label/clock is parentRelative!) - The same bug affected the "xoblite" string shown when no tasks are shown on the taskbar [changed Slit.cpp, SlitMenu.cpp, CommandItem.cpp, Settings.cpp/h 9/22/2003 qwilk] - Slit plugin positioning mode (SideBySide/Puzzle) was not properly saved to or read from extensions.rc... [changed CommandItem.cpp, Settings.cpp/h, ConfigMenu.cpp, Workspaces.cpp 9/8/2003 qwilk] - The toolbar is now set as the foreground window before executing a menu [exec] command to prevent the focus from changing back to the previously active task (sometimes located on a different workspace) when the menu is closed... Thanks to PovRayMan for helping me track this elusive little sucker down! =] - It is now possible to enable/disable follow active through a new option in the configuration submenu (saved as xoblite.tasks.followActive: in extensions.rc) ################################################################ xoblite bb1 | 0.3.8.29 ##########