########################################################### Blackbox for Windows 0.0.70 ########## [changed Blackbox.cpp 11/24 qwilk] - Holding down the control key on style change now prevents Blackbox from executing the rootCommand [changed Desk.cpp 11/24 qwilk] - You can now control the "drag'n'drop image to desktop" command: The default is tile, but by holding down Shift you get Stretch (reminder: S->S), and by holding down Control you get Center (reminder: C->C) [changed TaskItem.cpp 11/22 ironhead] - fixed the "Workspaces" menu so that when a task is selected, the menu disappears [changed Blackbox.cpp, BBApi.cpp, PluginManager.h, PluginManager.h, MenuMaker.cpp, MenuMaker.h, Menu.cpp 11/19 ironhead] - moved the Plugin Menu handling to PluginManager to correct some issues with styles - a bonus side effect is that [reconfig] now works like it did in the past (i.e. it no longer performs a Blackbox restart) [changed BBApi.cpp, Menu.cpp 11/19 qwilk] - ShowMenu() now sends a fake BB_MENU message (ID=3) to trigger BBSoundFX when opening plugin menus as well [added BBApi.h, FolderItem.cpp 11/19 qwilk] - Added another new message: BB_SUBMENU (requested by BBSoundFX beta testers) [changed CommandItem.cpp 11/19 ironhead] - fixed configuration indicators to use menu hilite style (since that's what I'm told BB'nix uses) [changed BImage.cpp 11/19 ironhead] - fixed the way solid color styles are handled [changed TrayManager.cpp 11/18 ironhead] - fixed problem where systray icons would cause task bars to paint incorrectly [changed ToolbarMenu.cpp 11/18 qwilk] - Changed the toolbar menu to say "Show/Hide Taskbar+SysTray"... =] [added Toolbar.cpp 11/18 qwilk] - Ctrl+MidClick can now be used to show/hide plugins too (somewhat easier to "find" on the keyboard compared to Shift+MidClick) [changed Workspaces.cpp 11/18 qwilk] - MoveWindowToPrev and MoveWindowToNext now uses the same "warp" mechanism as the taskbar (ie. stick window, change workspace, unstick window) [added BBApi.h, SysTray.cpp 11/18 qwilk] - Added a new message, BB_MINIMIZE, to signal e.g. plugins that a task has been minimized [changed SysTray.cpp 11/16 ironhead] - tweaked taskbar display yet again... :) [changed CommandItem.cpp 11/16 ironhead] - modified configuration indicators so that they use the same style elements as BB for *nix [changed Blackbox.cpp 11/15 ironhead] - fixed bug introduced by fixing plugin menus [changed BBApi.cpp, MenuMaker.h, MenuMaker.cpp, Blackbox.cpp 11/12 ironhead] - fixed plugin menus so they behave like regular menus - replaced temporary menu style change fix with permanent one [changed SysTray.cpp 11/11 ironhead] - fixed a condition which would occasionally crash BB if the systray was shown before any tasks were shown [changed Desk.cpp 11/11 ironhead] - fixed bsetbg command so that it locates bsetbg in the same directory as blackbox.exe [changes BIMage.cpp 11/6 ironhead] - fixed CreateBorder (was using only the right/bottom parameters) [changed Desk.cpp 11/6 ironhead] - fixed drag-and-drop of images where the path contained spaces [changed MenuMaker.cpp 11/5 qwilk/ironhead] - Fixed a bug where a dynamic menu ([path],[stylesmenu]) would occasionally show the contents of the root directory (ie. c:\) instead of the contents of a subfolder... [changed SysTray.cpp 11/5 qwilk] - Further finetuned the task item colour extraction - Fixed a bug that would lead to colour "overflow" for some specific combinations of RGB... =] [changed SysTray.cpp 11/4 ironhead] - Fixed a problem where tooltips were lined up with the wrong task items [changed HeaderItem.cpp, MenuMaker.cpp, Menu.cpp, CommandItem.cpp 11/3 qwilk] - Centered menu titles now work correctly - Adjusted menu indents and item heights to match Blackbox for Linux - Adjusted the x position of the bool indicator to match the new indents [changed Painter.cpp/h, MenuMaker.cpp 11/2 qwilk] - Moved SolidPainter and GradientPainter into the Painter files (no need to have six files with only a few lines of code each), should make the code easier to follow... :) - Removed SolidPainter.cpp/h and GradientPainter.cpp/h as well as all references to them [changed MenuMaker.cpp 11/2 qwilk] - Major cleanup of MenuMaker to get rid of some old and redundant code - Changed the error message box on an invalid [include] to display more detailed information [added SysTray.cpp 11/1 qwilk] - Mid clicking on a task now moves it to the next workspace (ie. to the right), Shift + Mid clicking moves it to the previous workspace (ie. to the left) [changed GradientPainter.cpp, SolidPainter.cpp, MenuMaker.cpp 10/31 qwilk] - Found the "too thin + non-aligned interlace lines" selected menu item bug! :D - Tweaked the FolderItem delay to make the menu feel snappier... [changed SysTray.cpp 10/31 qwilk] - Tweaked the task appearance (bar mode) a bit further (added support for solid type styles etc.) [added SysTray.cpp 10/30 qwilk] - Enabled drag'n'drop of styles to the systray bar as well (same functionality as the toolbar) [changed SysTray.cpp, SysTray.h 10/29 qwilk] - Adjusted the task icon alignment (icon mode) - Changed task appearance (bar mode) to use toolbar background colour +/- 25% and sunken/raised, and an average of toolbarColor/toolbarColorTo as TaskTextColor if inactive - Renamed a few functions/variables to make them easier to understand... ;) [changed FolderItem.cpp 10/27 ironhead] - fixed the menus so they line up (for qwilk :) ) [changed BImage.cpp 10/25 ironhead] - fixed a couple of bugs where dynamic menus would cause BB to crash occasionally [changed SysTray.cpp, Settings.cpp 10/25 ironhead] - fixed Settings so that if toolbar.button.pressed.picColor doesn't exist, it uses toolbar.button.picColor - modified the tasks buttons to use the toolbar button styles - the active task appears like a pressed button, whereas all inactive tasks appear as normal buttons [changed SysTray.cpp, TrayManager.cpp 10/24 ironhead] - modified the paint routines to stop the flickering that would occur on the task buttons if a systray icon changed [changed SysTray.cpp, TrayManager.cpp 10/23 ironhead] - made numerous fixes to the systray code to correct bad icon/tooltip behaviour - fixed tooltip problem in task list [changed SysTray.cpp, SysTray.h 10/17 ironhead] - fixed tooltip problem where tips remained after the entry was removed from the tasks [changed SysTray.cpp, SysTray.h, TrayManager.cpp, TrayManager.h 10/15 Jonne/ironhead] - incorporated Jonne's Task Display patch into the core with some modifications: - when selecting a task, the workspace is switched to the one containing the task - the tasks will take up all the unused space on SysTray - Jonne originally enumerated all the windows on each paint. I've made TaskManager do the enumeration only when it's created, then add window to the list after, which cuts down on CPU usage - The tasks now have tooltips that show the window title (handy for title that are too long to display in the task area) [changed BBApi.cpp 10/10 ironhead] - added plugin menu support [changed DesktopMenuItem.cpp 10/3 ironhead] - fixed problem where minimized windows were still showing in first workspaces window [changed CommandItem.cpp, CommandItem.h, MenuMaker.cpp, TaskItem.cpp, DesktopMenu.cpp, ToolbarMenu.cpp 10/2 ironhead] - added visual indicators for configuration options [changed SpecialFolder.cpp, MenuMaker.cpp 10/1 ironhead] - added dynamic menu support ([path]) - modified [nop] so that it does not highlight on mouse over [changed MenuMaker.cpp, BImage.cpp 9/27 ironhead] - modified [stylesmenu] so that it parses and displays submenus! (Thanx to nivenh for the quick tutorial on how to use the MSVC debugger! :) ) [changed MenuItem.cpp, GradientPainter.cpp, SolidPainter.cpp 9/24 ironhead] - fixed menu painting routine so that the menu now displays as per the style settings [changed Menu.cpp 9/24 ironhead] - fixed menu title border painting (it was painting 2 pixels to low) [changed HeaderItem.cpp 9/23 ironhead] - fixed problem where menu would disappear in top-left corner of the screen ########################################################### Blackbox for Windows 0.0.61 ########## [changed Desk.cpp 9/18 ironhead] - fixed bug where if you shade and window, then close it, then open it, and double click the titlebar to unshade it, the window would disappear. It no longer disappears, but the original height is lost (since the window was closed), so it will NOT unshade (you will have to manually stretch the window). Originally since the height was lost, it was setting the window to a height of zero (thus making it appear as if it disappeared. I'll see what I can do about this in the future. [changed Desk.cpp 9/17 ironhead] - changed the drag-and-drop function so that it uses bsetbg to display the image. This allows all file types supported by bsetbg to be used. - changed the behaviour of the "Workspaces" menu so that it focuses in the same way as the main menu [changed Toolbar.cpp 9/16 ironhead] - fixed problem where toolbar buttons were not reset when the mouse left the toolbar (thanx NC-17) [changed BBApi.h 9/14 ironhead] - as requested, added descriptive variable names to the exported functions [changed SysTray.cpp 9/14 ironhead] - modified the systray window so that it looks the same as the middle section of the toolbar [changed TrayManager.cpp, TrayManager.h 9/13 ironhead] - fixed "valid icon" check to correct for odd tooltip behaviour ########################################################### Blackbox for Windows 0.0.60 ########## [changed BBApi.cpp 9/7 qwilk] - Fixed a last-minute-bug in ParseItem... phew! ;) [changed FolderItem.cpp 9/3 qwilk] - Made the diamond bullet one pixel smaller on each side (requested by dreamer) and adjusted the diamond, square and triangle bullet positions [changed BImage.cpp, BImage.h 9/2 ironhead/qwilk] - The gradient rendering code now paints directly into the destination DIBSection instead of using a separate buffer, giving a HUGE increase in performance!!! :D :D :D - qwilk bows to the geniusness that is ironhead who discovered that redundant buffer... :) [changed BBApi.cpp 9/2 qwilk] - Changed the default settings in ParseItem to match the bb4nix defaults [added/changed BBApi.h, Blackbox.cpp, Toolbar.cpp, SysTray.cpp, CommandItem.cpp, BBKeys.cpp 8/31 qwilk] - Added a new BB_TOGGLEPLUGINS message and moved the toggle code out of the toolbar and into the main MsgProc (makes more sense since toggle can be done from many different places) - Added a TogglePlugins command to BBKeys [added/changed CommandItem.cpp, ToolbarMenu.cpp 8/31 qwilk] - Added a [toggleplugins] command to the menu, removed the hardcoded command from the toolbar menu [added Blackbox.cpp 8/31 qwilk] - Merged Negotive's HideExplorer code into the core (with permission - thanks Stephen). We have to do a lot of Explorer checking anyway, e.g. for the systray, so another 28 lines of code didn't seem like that big of a deal! [changed CommandItem.cpp 8/31 qwilk] - Added bro@m support to the menu [exec] command [changed BBApi.cpp, BBApi.h, *.cpp 8/30 qwilk] - Added a noErrorMsgs parameter to BBExecute to be able to suppress rootCommand error messages (got tired of maaneeack and dreamer whining about it all the time... ) [changed MenuMaker.cpp 8/30 qwilk] - Fixed a bug in MenuMaker::Hide (the toolbar and workspace menus were inside the main menu hide loop) [changed *.cpp, *.h 8/29 qwilk] - Changed all references to irc.openprojects.net -> irc.freenode.net [changed BBApi.cpp 8/29 qwilk] - SnapToWindowEdge was using only the right/bottom settings of the DesktopArea [changed Toolbar.cpp 8/29 qwilk] - Modified non-"Full maximization" DesktopArea a few pixels... [changed Hook.cpp 8/29 qwilk] - Fixed MsgProc's not forwarding CallNextHookEx (should fixed the reported WindowBlinds issues) - Removed debug code (easier to read, if we should need it in the future it's in the 0.0.41 source) [changed Menu.cpp Toolbar.cpp SysTray.cpp Desk.cpp 8/27 qwilk] - Sorry, it is now no longer possible to close Blackbox windows "by accident" using Alt+F4... (WndProc's do nothing except return 0 on WM_CLOSE) [added CommandItem.cpp, BBKeys.cpp 8/26 qwilk] - Added AboutStyle command (parses bbconf style information tags and displays them in a MessageBox) [changed Settings.cpp 8/25 ironhead/qwilk] - Added further backward compatibility for styles in 0.5x format [changed Toolbar.cpp SysTray.cpp 8/23 qwilk] - Disabled drawing of the (unnecessary) default background for all InvalidateRect's [added BBApi.h, Toolbar.cpp, Toolbar.h 8/21 qwilk] - It is now possible for external sources (e.g. plugins) to temporarily display text in the toolbar using the new BB_SETTOOLBARLABEL message. The toolbar display will return to normal mode after 2 seconds. [changed Blackbox.cpp 8/21 qwilk] - Forgot reloading the current style on restart (thanks dreamer for the heads-up) [changed Desk.cpp 8/21 qwilk] - No longer resets XMouse back to the Windows default on exit [changed Blackbox.cpp, TrayManager.cpp, TrayManager.h 8/21 qwilk/nivenh] - Removed window creation from the TrayManager constructor since it was causing timing/dependancy problems (thanks nivenh for the tip!), changed Blackbox restart to unload/reload plugins only (no point in restarting the entire Blackbox since the UI is not fully modular like LiteStep's) [added BBApi.h, Toolbar.cpp, Toolbar.h 8/17 qwilk] - Started implementing BB_BROADCAST messages -> bro@m -> the bang killah! :D - First supported "global" commands: @BBShowPlugins, @BBHidePlugins [changed Blackbox.cpp 8/16 ironhead] - Modified the shutdown routine to allow the Win2k/XP systray icons (volume, DUN, etc.) to exit cleanly before Blackbox quits - Fixes random crashes during shutdown/quit [changed BBApi.cpp 8/16 qwilk] - Fixed an ugly bug in MakeGradient that made all blits start at x=0,y=0 [changed SysTray.cpp, Systray.h, Traymanager.cpp, TrayManager.h 8/15 ironhead] - Fixed tooltips (and took into account the increased buffer space) [changed SysTray.cpp 8/14 qwilk] - Changed icon spacing to 2 pixels... =) [added/changed TrayManager.cpp, TrayManager.h, SysTray.cpp, SysTray.h, Blackbox.cpp 8/14 ironhead] - Moved all tray managing functionality to the new files TrayManager.cpp/h of which an instance is created at startup and then used until Blackbox quits, thus avoiding repeated restarts of COM and SSO - Cleared up a few more memory leaks etc. on Blackbox restart [changed Blackbox.cpp 8/14 qwilk] - Implemented a (temporary) workaround to prevent menu memory leaks on style change [changed SysTray.cpp 8/13 ironhead] - Cleaned up a memory leak on Blackbox restart [changed SysTray.cpp, FolderItem.cpp 8/13 ironhead] - Cleaned up some open objects [added Hook.cpp, Hook.h 8/10 qwilk] - X1/2 click on a window title bar will now move it to the next workspace (for some reason this does not seem to work on Explorer windows, what a surprise eh? ) [added Workspaces.cpp, BBKeys.cpp, BBApi.h 8/10 qwilk] - Added two new BB_WORKSPACE commands: 6 = MoveWindowLeft (moves the current window one workspace to the left) and 7 = MoveWindowRight (one workspace to the right) Bottom line, you can now use e.g. hotkeys to move windows to other workspaces! :D [changed Menu.cpp, Desk.cpp, Toolbar.cpp, SysTray.cpp, BBApi.h 8/10 qwilk] - Cleaned up the menu command handling, now *all* menu commands are triggered by BB_MENU messages, except hide (Param3: 0=Main menu, 1=Workspaces menu, 2=Toolbar menu) [changed Blackbox.cpp, CommandItem.cpp, BBKeys.cpp 8/10 qwilk] - Fixed reconfigure (in fact, it hasn't been working at all until now!!!) It now uses a null BB_SETSTYLE message, which makes Blackbox refresh the current style's settings and then broadcast BB_RECONFIGURE to make all GUI elements update themselves. [changed Menu.cpp 8/9 ironhead/qwilk] - The PaintBorder function now uses CreateBorder to generate the menu borders [changed BImage.cpp/.h, BBApi.cpp/.h 8/9 ironhead] - Made MakeGradient use the border (and specify a borderColour) - Remove the border variable from CreateGradientByRect [changed BImage.cpp 8/9 qwilk] - Changed CreateBorder to use a "for" loop instead (safer than trying to understand pen widths...) [changed BImage.cpp, SysTray.cpp 8/8 ironhead] - Modified the CreateBorder function so that it now creates an outlined rectange (as opposed to a filled one) - Removed an unnecessary Gradient call from SysTray.cpp [changed BImage.cpp, Toolbar.cpp, SysTray.cpp 8/7 qwilk] - Added a CreateBorder function to BImage, made appropriate changes to Toolbar and SysTray [changed BImage.cpp, Blackbox.cpp, Toolbar.cpp, SysTray.cpp, GradientPainter.cpp 8/7 qwilk] - For legacy reasons, we were creating/deleting BImage objects all over the core, which was quite inefficient and also unnecessary... =] Now Blackbox creates a single BImage object on startup, which is then used by every GUI object (Toolbar, SysTray, Menu)... [changed BImage.cpp 8/7 qwilk] - Now using SetPixelV (faster than SetPixel because it does not need to return the color value of the point actually painted) [changed Workspaces.cpp 8/2 ironhead] - Fixed bug where DesktopArea was not being reset on resolution change (resulted in windows not displaying correctly when dragged from workspace to workspace) [changed Blackbox.cpp 8/2 ironhead] - rootCommand now runs on a display change (i.e. resolution change) [changed Desk.cpp 8/2 qwilk] - Fixed a bug where the desktop window was not resized on screen resolution change [added Blackbox.cpp SysTray.cpp 8/2 qwilk] - Added a -nosystray switch which disables the Blackbox internal system tray (please note that it will be disabled automatically if running on top of Explorer or another systray is already present) [changed SysTray.cpp 8/2 qwilk] - Changed the SysTray mid/X1/X2 clicks to do the same as clicks on the toolbar... :) [added Desk.cpp 8/2 qwilk] - Made Shift + Right Click on the desktop show the Workspaces menu, ie. "emulate" the mid button for people still living with a 2 button mouse... [changed SysTray.cpp, SysTray.h 8/2 qwilk] - Realised that only the relative x positions of the tooltips changed on screen resolution change, since only the toolbar/systray width changes (lots of "changes" in that sentence! ). Furthermore, the background bitmap needs to be re-rendered since it too is affected by the width change. I therefore moved the repainting to WM_DISPLAYCHANGE, and cleaned up and renamed the SetAllTrayIcons function to UpdateToolTipPositions (made more sense). [added SysTray.cpp, SysTray.h 8/2 qwilk] - Added a new SetAllTrayIcons function that is called when the screen resolution changes, the reason being that the if the screen resolution changes -> SysTrayWidth changes -> -> tray icon relative x/y positions change -> ToolTips show up at the wrong mouseover position (or not at all) if the trayIcons array isn't updated! SetAllTrayIcons updates all icon x/y positions in the trayIcons array and forces a repaint of the system tray window. [changed Desk.cpp 8/1 qwilk] - Made X1/X2 clicks (see below) work on the desktop as well... [changed Toolbar.cpp 8/1 qwilk] - Since a doubleclick on the toolbar clock now opens Date/Time Properties (see update on 7/3), I changed X1 click to open Display Properties, and X2 click to open Sounds and Multimedia Properties [added BBApi.h, SysTray.cpp, Toolbar.cpp, CommandItem.cpp, BBKeys.cpp 8/1 qwilk] - Added a new BB_TOGGLETRAY message to be able to toggle the SysTray using e.g. hotkeys, changed toolbar (mid click) and toolbar menu to use this new message as well [changed SysTray.cpp, SysTray.h 8/1 ironhead] - Added code to minimize CPU usage by SysTray - Gradient code used to generate background is now only called on initial paint, or if the style changes [changed SysTray.cpp 7/31 ironhead] - Added code so that the icon will only repaint if something actually changed [changed SysTray.cpp, SysTray.h 7/31 qwilk] - Fixed ToolTips showing up at the wrong mouseover position, removed redundant variables [changed SysTray.cpp 7/30 ironhead] - Removed a line of code that was giving the LButton menu of Volume Control some grief [changed BImage.cpp 7/30 nivenh] - Fixed PipeCross and Rectangle gradients (see "lmax" and "lmin" templates) [changed SysTray.cpp, SysTray.h 7/26 ironhead] - Completed systray implementation - All properly implemented systray icons (the ones that resend on a broadcast of "TaskbarCreated") now show on a BB restart - Win2k/XP icons are fully supported [changed SysTray.cpp 7/21 qwilk] - WM_PAINT now checks if the systray icons fit the toolbar before painting them... [changed Hook.cpp 7/4 qwilk] - Now checks if the hook was successfully set at startup before calling UnhookWindowsHookEx... [changed Toolbar.cpp 7/4 qwilk] - Fixed a bug where toolbar would not update directly at startup if launched at whole hours (e.g. 11:00) [added Toolbar.cpp Toolbar.h 7/3 qwilk] - Doubleclick on toolbar clock now opens Date/Time Properties [changed SysTray.cpp SysTray.h 7/3 qwilk] - The Blackbox SysTray will now be disabled if another systray (ie. under Explorer) is running [changed SysTray.cpp SysTray.h 7/3 qwilk] - Implemented better mouse click handling and tray icon menu support [added Toolbar.cpp Toolbar.h, CommandItem.cpp, ToolbarMenu.cpp 7/2 qwilk] - Added code to toggle the SysTray window from the menu or using mid-click on the toolbar [added SysTray.cpp SysTray.h 7/2 qwilk/ironhead] - Added SysTray related files, implemented basic functionality (painting etc), merged in ironhead's early SysTray code... Please note that the tray icons are not saved on restart, and the "proprietary" Win2k/XP icons are not supported - yet! 8) ########################################################### Blackbox for Windows 0.0.41 ########## [added Blackbox.ico Blackbox_inverted.ico 6/30 qwilk] - Created the missing 48x48 pixel icons... :) [changed BImage.cpp BImage.h 6/29 qwilk] - Further streamlined BImage [added Blackbox.cpp CommandItem.cpp 6/28 qwilk] - Added support for Hibernate and Suspend [changed Blackbox.cpp 6/28 qwilk] - Fixed rootCommand being executed without checking if blank/non-existing or not... (thanks phes for bringing it to my attention) [added Toolbar.cpp Toolbar.h 6/25 ironhead] - The toolbar date/time display can now be configured using the blackbox.rc "strftimeFormat" setting! [changed Blackbox.cpp 6/18 qwilk] - Temporarily went back to using WinExec in RunEntriesIn() because I noticed some registry items were in quotes and others were not, which lead to BBTokenize messing up commands with spaces in the path... (ie. some startup items were not executed) [changed Blackbox.cpp, CommandItem.cpp, BBKeys.cpp 6/18 qwilk] - Improved working directory extraction before BBExecute's [added BBApi.cpp 6/15 qwilk] - BBExecute will now show an error message if command execution fails [changed BImage.cpp BImage.h 6/11 qwilk] - Hmm, when porting the original Blackbox code I left out invert() because I couldn't understand what it did... well, thanks to an email to the mailing list and nivenh I now know it is used by Sunken style elements... in other words, it's fixed now :) ########################################################### Blackbox for Windows 0.0.40 ########## [changed Blackbox.cpp 5/22-6/3 qwilk] - Cleaned up the code, adding comments and making minor changes all over the place... =] [added *.cpp, *.h, license.html 6/3 qwilk] Added open source license information to the source code files, additional license information can be found in license.html [added PluginManager.cpp 6/3 qwilk] - Now displays an error message if a plugin does not exist (e.g. wrong path, user deleted the .dll... ) [changed Blackbox.cpp 6/3 qwilk] - Fixed ShutdownWindows() trying to set shutdown priviliges in Win9x -> error message (thanks ilmcuts!) [changed BBApi.cpp Blackbox.rc 6/2 qwilk] - Changed GetBBVersion() language setting to neutral [added Blackbox.cpp BBApi.h CommandItem.cpp BBKeys.cpp 6/2 qwilk] - Added EditStyle/EditMenu/EditPlugins commands to menu and BBKeys, using a new message: BB_EDITFILE. These commands make Blackbox everyday use much smoother, especially EditStyle which makes opening and editing styles much easier. [added BBKeys.cpp 6/2 qwilk] - Added a ShowMenu command to BBKeys which means it is now possible to access the menu even if a window covers the entire desktop (ie. if full maximization is enabled) [changed BBApi.cpp PluginManager.cpp 6/2 qwilk] - Moved pluginsrc "file finder" code from PluginManager to new function plugrcPath() in BBApi [added Blackbox.cpp CommandItem.cpp BBKeys.cpp 6/2 qwilk] - Added LockWorkstation command to menu and BBKeys (another BB_SHUTDOWN message) [changed MenuMaker.cpp BBApi.cpp Blackbox.cpp 6/2 qwilk] - If you specify "[begin] ()" in menu.rc (ie. no menu title label) "Blackbox " + current version (e.g. "Blackbox 0.0.40") will be displayed [changed BBApi.cpp 6/2 qwilk] - Solid type now overrides gradients in ParseItem() [added Toolbar.cpp Toolbar.h 6/2 qwilk] - Added toolbar border support (non-optimized simple'n'dirty atm ) [changed MenuMaker.cpp 6/1 qwilk] - File extensions are no longer removed from styles... [added Blackbox.cpp 6/1 qwilk] - Ported and simplified LiteStep's -install/-uninstall code, tested on Windows 2000 & 98 [changed Blackbox.cpp, BBApi.h, CommandItem.cpp, BBKeys.cpp 6/1 qwilk] - MainWndProc, ShutdownWindows(), LogoffWindows() Added new BB_SHUTDOWN message, removed calling the standard Windows shutdown menu (which wasn't working if called from the Blackbox menu), and added new code to for Shutdown, Reboot and Logoff (Hibernate and Suspend should be possible later as well) [removed Blackbox.dsw 5/31 qwilk] - Removed BBKeys, bsetroot and XMouse95 from the Blackbox workspace (not part of the core) [changed Blackbox.cpp, Desk.cpp 5/31 qwilk] - Fixed a few invalid SystemParametersInfo parameters and possible stack memory overruns [added Desk.cpp, Toolbar.cpp, Toolbar.h, CommandItem.cpp 5/31 qwilk] - Implemented the "Full maximization" menu item; if false DesktopArea is automatically updated if the toolbar placement changes (thanks kitsune for the heads-up! :D) [changed BBApi.cpp, BBApi.h, MenuMaker.cpp 5/30 qwilk] - Removed StyleItem bool members "gradient" and "solid", added type B_SOLID instead, removed solid handling from MenuMaker, adding it to BImage, and made appropriate changes to ParseItem(). This makes much more sense as all other rendering stuff takes place in BImage. [changed Blackbox.cpp 5/29 qwilk] - Removed the call to SetShellWindow because it only seems to cause problems (e.g. Explorer file manager not updating views etc) [added FolderItem.cpp, FolderItem.h, MenuMaker.cpp 5/28 qwilk] - Added support for the "circle" menu bullet [changed Blackbox.dsp, Hook.dsp, BBKeys.dsp 5/28 qwilk] - Removed unnecessary link libraries from the project settings [changed BBKeys.cpp 5/26 qwilk] - Removed the hardcoded path to bbkeys.rc (it previously had to be located in the Blackbox directory); now it will work as long as it's in the same dir as the .dll or in the Blackbox directory [changed BBApi.cpp, BBApi.h, Menu.cpp 5/26 qwilk] - Renamed SnappWindow to SnapWindowToEdge (easier to understand...) [changed Blackbox.cpp, commandItem.cpp, BBKeys.cpp 5/26 qwilk] - Added working directory parsing before BBExecute calls (not perfect yet). If the executed command is a rootCommand the Blackbox directory will be set as working directory (most styles do not specify the full path to e.g. bsetroot, so it actually makes sense! ) [changed Blackbox.cpp, commandItem.cpp BBKeys.cpp 5/25 qwilk] - Changed menu [exec]'s to use BBExecute, which means files will open in their default viewer if you do not specify an app to use in your menu.rc or bbkeys.rc -> no need to hard-code app paths anymore! However, for the command parsing to work you have to put quotes around app paths with spaces in them. [removed BImage.cpp BImage.h 5/24 qwilk] - Removed CreateGradient, of no use since painting directly using CreateGradientByRect is (again!) easier and more efficient (it wasn't used anywhere in the code either, so...) [changed Toolbar.cpp 5/23 qwilk] - Changed toolbar to use CreateGradientByRect to paint directly into the toolbar, more efficient [changed BBApi.cpp 5/23 qwilk] - Changed MakeGradient to void, now paints directly into supplied HDC (easier and more efficient) [changed BImage.cpp, BImage.h 5/22 qwilk] - Inspired by nivenh's bluebox, I rewrote BImage using the original Blackbox (http://blackboxwm.sourceforge.net/) gradient math code... and it looks awesome! :D However, Rectangle and Pipecross are not working correctly yet, so I have temporarily replaced both of them with Pyramid. More optimizations to come... :) [added Toolbar.cpp, Toolbar.h, commandItem.cpp 3/28 qwilk] - Started working on toolbar autohide support (for now, it runs a continuous loop hide/unhide when enabled) ########################################################### Blackbox for Windows 0.0.30 ########## [changed bsetroot.cpp 3/4 qwilk] - Updated the -help window information to the same style as Blackbox.exe, removed version from szAppName and put it in szAppVersion instead [changed BBApi.cpp 3/3 qwilk] - MakeGradient() / case B_PYRAMID Changed the non working (set to horizontal) pyramid to use pipecross with swapped colours (this is not correct of course, but it's a better approximation than horizontal) [changed Settings.cpp, Settings.h 3/3 qwilk] - Changed default style settings to something reasonably readable (black text on black background was a bit hard to read...) [changed Blackbox.cpp, BBApi.cpp 3/3 qwilk] - Updated the -help window information, put the version info in that window as well, and removed the useless -version switch. Removed the -install and -uninstall switches since they weren't implemented anyway. Changed GetBBVersion() to say "Blackbox for Windows". [fixed Toolbar.cpp, Toolbar.h 2/28 qwilk] - case WM_LBUTTONUP / Buttons 3&4 Fixed bug where the task switch code got stuck in an infinite loop if no windows were open... and made Blackbox change desktops if the new task isn't on the current desktop (using the BB_BRINGTOFRONT message) - Toolbar::Toolbar(), case WM_TIMER The toolbar now displays the correct workspace name at startup... [changed Toolbar.cpp, Toolbar.h, Workspaces.cpp 2/28 qwilk] - Made Workspaces call BB_LISTDESKTOPS for the Toolbar on every workspace switch (...made hToolbarWnd public, included the appropriate files etc.) [added Desk.cpp 2/27 qwilk] - Desk::createDesktop, case WM_DROPFILES Added support for drag'n'drop of wallpaper bitmaps (.bmp) to the desktop, style is automatically set to tile [added bsetroot.cpp 2/27 qwilk] - WinMain() Added "stretch" to -bitmap options [fixed Toolbar.cpp 2/21 qwilk] - case WM_LBUTTONUP / Buttons 3&4 Simplified the task switch button code (I am quite proud of it :D ), should now work under Exploder too! [changed Blackbox.dsp 2/20 qwilk] - Added _changes.txt to the project to make it easier for me to update the damn thing! Disabled "Exclude from build" for Toolbar.h [fixed Toolbar.cpp 2/19 qwilk] - case WM_LBUTTONUP / Buttons 3&4 Finetuned code for task switch buttons (still not perfect) [fixed configmenu.cpp 2/18 db] - ConfigMenu::configmenu mmm, added a updatefolder in the constructor to cause a validate to take place getting the window size so the config menu(s) dont open right when everything else is opening left.. (word) [fixed folderitem.cpp 2/18 db] - folderitem::showsubmenu fixed az's code so menus show on left if there is not enuf screen space. [added Toolbar.cpp 2/15 qwilk] - case WM_LBUTTONUP / Buttons 3&4 Added code for task switch buttons (not perfect yet) [changed Desk.cpp, Desk.h 2/15 qwilk] - Moved hDesktopWnd definition to Desk.h and made it public (used by Toolbar to exclude the Desk window at task switch) [merged menu.cpp 2/9 db] - Menu::validate added my menu border changes [fixed settings.cpp 2/9 db] - Settings::ReadStyleSettings GAY! bb was crashing on startup for me so i had to single step the whole bastard... the wildcards were causing it if they were not found in a style and a particular settings was not, ie no *textcolor and no toolbar.label.textcolor.. fixed by not using an if, just strcpying readstrings results (this is better because you have to call readstring with a default anywayz (oops, bad case of cut'n'paste on my part! Sorry... /qwilk) [fixed toolbar.cpp 2/5 steev] - Toolbar::Toolbar szToolbarName, // use description for a window title changed to NULL so it wouldn't show up in taskmanager. [fixed toolbar.cpp 2/4 steev] - case WM_PAINT added a bunch of DeleteObject(bgbitmap); lines. (oops! /qwilk) also, removed the DeleteDC(hdc); line as BC was complaining about it being invalid. [started slit*.* 2/3 steev] - started preliminary work on the slit. stopped as we have nothing that loads in the slit, and I have no idea how to start doing that. the files are left out of compilation and are based on the toolbar's source atm. [fixed bsetroot.cpp 2/3 steev & niv] - gradient - default: fixed a memory leak in there... search for steev for my changes. [fixed bbapi.cpp 2/3 steev] - GetBlackboxPath GetModuleFileName( NULL, szPath, MAX_PATH ); We are only getting the name of the running executable so null is all we gotta pass. [fixed bbapi.cpp 2/3 steev & niv] - HBITMAP::MakeGradient commented out HBITMAP b = CreateCompatibleBitmap(hDC, width, height); made it HBITMAP b = NULL; as it is reassigned soon after anyways [fixed settings.cpp 1/30 deadbeat & steev] - settings::readstylesettings() added a few(bunch) lines to stop mem leaks when reloading styles (on StyleItem objects) - settings::settings added the corresponding intiliazing lines for the styleitem objects - settings::~settings delete'd the styleitem objects (MenuTitle etc) [fixed menumaker.cpp 1/30 deadbeat & steev] - menumaker::readconfig fixed it so the 2 fonts get deleted if they already exist [was casuing a resource leak] fixed the menumaker items causing mem leaks - menumaker::menumaker init'ed the fonts & menumaker items to 0 - menumaker::~menumaker removed the if to deleteobject() one of the fonts, dont think it will hurt to deleteobject it anyway [fixed bimage.cpp 1/30 deadbeat & steev] - bimage::creategradientbyrect wow, changed a few lines at the top and uncommented a line at the bottom, gdi seems to be fine now ;]]]]] btw, i created this bug, it was my bad..it was one of the first changes i made and i forgot to comment it out i commented out a deleteobject instead of a selectobject.. :P [fixed folderitem.cpp 1/30 deadbeat & steev] - few changes all over the place, basically you have to deleteobject() your HRGNs (regions) ... [fixed bbapi.cpp 1/30 deadbeat] - cleanstring() weird bug with empty strings.. fixed with a strlen conditional [added Toolbar.cpp 1/30 qwilk] - Added support for drag'n'drop of styles to the toolbar [fixed blackbox.cpp 1/30 steev] - Added HMODULE hShell32Module = NULL; to make using LoadLibrary on it easier down the line. - Changed the 3 Undocumented API Features to typedef's rather than the older 16bit way of FARPROC's (thanks to nivenh on that - and most of these changes, for talkin to me whilst i was doing it and tellin me when i was going astray) - WinMain - added that SHELL32.DLL LoadLibrary I was mentioning.. its the first 3 lines now. - fixed char options [4096]=""; to char options [4096 * 2] = "; BoundChecker was claiming a Stack memory overrun. - got a resource leak here... //CreateMutex(NULL, false, "Blackbox"); Changed to HANDLE hMutex = CreateMutex(NULL, false, "blackbox"); - changing these to the "new style" FARPROC is 16-bit //SetShellWindow = (FARPROC (__stdcall *)(HWND))GetProcAddress(GetModuleHandle("USER32.DLL"), "SetShellWindow"); HMODULE hUser32Module = LoadLibrary("USER32.DLL"); SetShellWindow = (SETSHELLWINDOWPROC)GetProcAddress(hUser32Module,"SetShellWindow"); //MSWinShutdown = (FARPROC (__stdcall *)(HWND))GetProcAddress(GetModuleHandle("SHELL32.DLL"), (LPSTR)((long)0x3C)); MSWinShutdown = (MSWINSHUTDOWNPROC)(GetProcAddress(hShell32Module,(LPCSTR)MAKELPARAM(0x3C, 0))); //RunDlg = (FARPROC (__stdcall *)(HWND, HICON, LPCSTR, LPCSTR, LPCSTR, int))GetProcAddress(LoadLibrary("SHELL32.DLL"), (LPCSTR)61); RunDlg = (RUNDLGPROC)GetProcAddress(hShell32Module,(LPCSTR)MAKELPARAM(61, 0)); - CloseHandle hMutex to close the Mutex that states that BB is running. [added 1/28 commandItem.cpp, MenuMaker.cpp, MenuMaker.h qwilk] - Added toolbar menu and commands (btw, I know haven't updated changes.txt in a while, sorry about that... I preferred working on the toolbar... ) [fixed blackbox.cpp 1/28 steev] - hidden/system files erroneously being run... grabbed the fix that was used with litestep. [fixed bimage.cpp bimage::creategradientbyrect() 1/25 deadbeat] - i fixed the stupid bevels. reduced the code to about 1/4 the size too i did this because that way i only have to debug 1 set of lineto's insetad of 4 bb4linux has gradient bevels tho, i thnk its just overlayed which would be rather easy with bitblt but i dont even wanna mess with it now. [fixed menu aligning by border widths 1/24 deadbeat] - made it so menus line up properly menumaker.cpp menumaker::readconfig changed so instead of calling setoverlap(1,0) it uses setoverlap(m_nBorderWidth, m_nBorderWidth + m_nBorderWidth) folderitem.cpp (line 12 and 13) made default overlaps 0 folderitem.cpp folderitem::showsubmenu() made it so it subtracts overlaps instead of adding them. (3 places) [fixed menu.cpp menu::validate & menu::paintborder 1/24 deadbeat] - adjusted menus so they increase their size for fatter borders also had to adjust paintborder() and folderitem::showsubmenu() accordingly *IMPORTANT* i commented out the window region stuff because its annoying and i didnt see why we needed it [fixed bimage.cpp bimage::creategradientbyrect() 1/24 deadbeat] - attempted to clean up gdi leaks, i think i got a few but theres tons more [added 1/23 hook.cpp getmsgproc() deadbeat] - added an extra conditional to the if statement so you can use the system menu w/ double click to close [fixed 1/22 bbapi.cpp & bsetroot.cpp readcolor() deadbeat] - fixed a VERY gay error with rgb: colors. originally if they were like 1/c/3 i used strcat(cr,cr); and that made red 11 however... in release builds this cause errors, the strings were being mutilated so i fixed it...if your incorporating my changes use the whole function [fixed 1/22 bbapi.cpp & bsetroot.cpp parseliteralcolor() deadbeat] - used the colors from aza, added code to strip spaces to split the # of strcmp's needed in half... added code to parse greyXX values to reduce the # of strcmp's by another 202. *IMPORTANT* made ParseLiteralColor() return a COLORREF instead of a string! this should not affect anything since the only place that calls it is readcolor() [changed 1/22 blackbox.cpp deadbeat (code by steev)] - incorporated steev's command line changes into blackbox.cpp [added 1/21 menu.cpp menu::show() deadbeat] - made it so if the menu opens and its x or y is < 0 then its not shown off screen. [added 1/20 Toolbar.cpp, Toolbar.h, Settings.cpp, Settings.h qwilk] - Started working on the toolbar, modified settings, made related changes in the core files [fixed 1/20 menu.cpp paintborder() deadbeat] - fixed missing 1 pixel bug and the borderwidths were only being drawn on the rigth and bottom sides... used framerect() instead of a bunch of lineto()'s ... still have to compensate for it though, i will add this (ie make the menu 2 x border width wider and taller so the bevels and menu items arent screwey) [fixed 1/20 bbapi.cpp & bsetroot.cpp readcolor() deadbeat] - fixed a small bug... on rgb: values like rgb:1/5/C it means 11/55/CC not 01/05/0C (people on #blackbox didnt even know, they thought it meant 01/etc too) [fixed 1/20 blackbox.cpp winmain() deadbeat] - if your already running bb it used to ask if you wanted to continue, however az changed the messagebox function so there was no "NO" button... bb screws up hardcore on my system when i run 2 anyway so i made it just say its exiting and then exit. [fixed 1/20 settings.cpp settings::settings, settings::readstylesettings() deadbeat] - fixed (quick hack) colors getting overwritten by style default colors (ie *fontcolor) by implementing the settings constructor (for more vars than needed, but figured might as well) and then checking if the color == 0 use default. todo/note: its slower because for each color that isnt set it does another readstring this could easily be fixed by using a tmp var.. จจจจจจจจจจจ The dev team takes over from azathoth จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ ########################################################### Blackbox for Windows 0.0.21 ########## Blackbox + Blackbox now runs startup items if not under explorer. Use the -nostartup switch to cancel this. - Removed ability to define menu and style on startup, silly idea anyways. ~ Updated -help and -version to use new api setting GetBBVersion(). ~ Changed message pump to handle errors better. ~ Fixed refresh pause (hold shift on refresh). - Removed ability to kill blackbox flat. It was bad of me to put it in anyways. ~ Fixed style applying to be quicker cleaner and to apply to all plugins that handle it. ~ Fixed BB_RUN to display the run box correctly. + Added BB_REGISTERMESSAGE and BB_UNREGISTERMESSAGE to set your plugin up with message handlers. ~ Fixed problem with logging off and killing blackbox. - Removed -rtfm switch. + If blackbox can't find your blackboxrc it will automatically generate one in your windows directory. + If blackbox can't locate your menu file it will automatically generate and use one from your windows directory. ~ Blackbox now accepts either "blackbox.rc" or "blackboxrc". ~ Fixed god-awful message delay bug. ~ Changed compile options and bloated exe up by about 30 kb. However, the shell is much stabler and muuuuch faster because of it. @ No-one has put forward an icon yet so our little afro-dude is gonna stay until someone does. MessageManager ~ Moved new message handling code from blackbox.cpp to it's own class. + Added new message manager which handles all plugin registered messages and dispatches them accordingly. ~ Fixed evil bug that was holding up message deletion. ~ Rewrote entire thing using different STL methods (changed to map+set rather than several vectors, works better). PluginManager ~ Rewrote plugin loading methods. - Removed certain settings from being sent to plugins as they're loaded. beginPlugin now only gets sent a HINSTANCE, it no longer gets sent the parentWnd. Use GetBBWnd() if you want the parentWnd. + Added ability to list loaded plugins. However, this is still buggy and should not be considered useable. ~ Now accepts either "pluginsrc" or "plugins.rc". Settings + Added style reading for all objects (menu, window and toolbar) properly so that future devs can see how the style's are read and formatted. Unused items (toolbar and window) are still commented out but when uncommented, they will work fine. - Removed ParseItem() and the StyleItem class from settings.cpp and moved them to the api. ~ Fixed support for wildcard settings. BImage ~ Slightly altered several pieces of internal code. Fixed up CreateGradientByRect() function to Blt properly (won't be visually detectable, but to my scrupulous vision, it is better). Workspaces - Removed several large chunks of old code that was holding up development due to message lapses. + Re-wrote the entire structure of the vwm. Now follows along the methodology of jugg's bangvwm module for litestep. I have left in a few helper functions fromt he older workspaces.cpp and this has meant a smoother transition to the new vwm for the menu etc. However, this code will soon be replaced. ~ Changed BB_LISTDESKTOPS to use the new DesktopInfo class from the api. API + Added ParseItem() function to parse a given string into it's style components and fill a StyleItem class with it's values. + Added GetBBVersion() function to automatically return a "Blackbox x.x.x" string. This string is extracted from blackbox.exe's version info and is alot easier for me to update than havign to change the bbapi.h BLACKBOX_NAME setting each time i build (a change to the api.h causes the entire of bb to have to be rebuilt... this usually takes about 5 or 10 minutes, which is never good). ~ Fixed MakeGradient() slightly. ~ Changed BBDESKTOPINFO struct to a DesktopInfo class. + Added StyleItem class which contains all the details of a style's gradient setting. ~ Fixed Log() so that the second parameter is a const string rather than a pointer. ~ Fixed IsInString() to use strlwr() rather than the long nasty way i was doing it before. - Removed an obsolete internal function. ~ Altered menuPath() and stylePath() to return full paths to the menu and style file. This means you can put "menu.rc" or "styles\clouds" in your bbrc and they will internally evalute to the full paths no matter where the program is run from. Menu + Submenu's now don't dissapear when an item is clicked if that menu has been removed from the root or 'dragged' away. - The main menu now dissapears when the workspace menu is opened and vice-versa. ~ Moved certain settings for the menu from here to settings.cpp. ~ DesktopMenu now uses the new DesktopInfo class. + Added [run] setting to the menu. This shows up the run box. + Selecting "SloppyFocus", "AutoRaiseSloppyFocus" or "ClickToFocus" from the [config] menu now applies those settings automatically. - Removed some obsolete key handling code i missed. - With the new message registering code i have removed a large chunk of overhead hacks i had to do before i got the pumping finished. + Added [stylesdir] back in. Before it functioned the same as [stylesmenu] now however, instead of creating a submenu, it parses the styles directly into the current menu. ~ Fixed annoying reconfigure bug. Menu now reconfigures properly on a style change (and re-parses the menu file). However, this has caused some bugs with module people who try and register for BB_MENU and BB_HIDEMENU. Most people shouldn't actually need to do this however. Hook + Added ShellHook support. - Removed alot of useless code that wasn't implemented properly. ~ Fixed code up an awful lot. Should be nearly perfect. Packaging + Now added all the default styles for blackbox. These some of the nicest i have anyways. ~ Updated the menu and the blackbox.rc file to support these styles. SDK ~ Updated SDK to reflect changes made in blackbox 0.0.21. ############################################################ Blackbox for Windows 0.0.20 ########## BBApi + Added IsInString(LPCSTR inputString, LPCSTR searchString) function. Will return true if searchString is found in inputString. Return's false otherwise. ~ Fixed path variables so that you can use alternative ones rather than the default. BBSettings ~ Made a change to the StyleItem class that will speed things up a bit. BBMenu ~ Altered style reading for a small speed increase. - Removed frame bevel code until i re-write the menu (which should be soon now that i've worked out the main details) BImage ~ Okay bevels are always under work. Something so simple is damn hard to do. Right now they are looking okay, but still a bit crazy. The main problem is that i can only write solid lines of colour now, i can't write gradiented lines. ~ Altered the height of menu titles. They are now bigger than normal menu items. (not by much but it does make things nicer). Hook ~ Finally pinned down the /very/ annoying unloading bug. BBPluginManager ~ Changed things to make hook be loaded here. Blackbox ~ Changed style swapping. Now it doesn't have to write to the blackboxrc on each style swap. this will make things SOOOOO much faster for style swapping and will prolly kill alot of bugs that occur when a program tries to access the file while it's being written (some people say they get crashes when there's a netsplit). ############################################################ Blackbox for Windows 0.0.17 ########## BBPluginManager ~ Fixed stupid bug that wouldn't unload more than one plugin. BImage ~ Fixed up some gradients. Elliptical might now be a viable option to use. It is, however, guaranteed to be slow as hell. Looks like i might have to either a) bring galois onto the development board or b) go back and re-learn all the maths i spent 3 years trying to unlean in school. ~ Fixed bevel's up a whole heckuva lot. Non-specified bevels are now handled properly which means themes like blackstep work properly. BBApi ~ Fixed BBTokenize to accept NULL as a parameter. ~ Fixed GetOSInfo... i'd ever used it before, the one time i do, i find out it's buggy =) ############################################################ Blackbox for Windows 0.0.16 ########## Hook - Removed all x-mouse hook code. Turns out that the only way to do x-mouse on platforms > Win95 is to use the built in m$ settings. (I wrote my own implementation but due to m$ imposed restrictions, it can /only/ work in the way the m$ x-mouse does so it's pointless me putting it in). I have lost many many hours working on this thing thanks to microsoft's disgusting lack of common sense. BBDesk + Re-added all the old m$ style x-mouse support. Now i can get on with more important things... grumble grumble... BBMenu ~ Fixed the menu active problem so that if the menu looses focus it won't hide the submenus. This works great with x-mouse now. ~ Fixed the problem with showing the main menu and auto-raise. No the menu stays above all windows no-matter what x-mouse style you use. If only i'd thought of this earlier!! (Also look at an earlier update and see that the desktop no longer recieves x-mouse focus =) ############################################################ Blackbox for Windows 0.0.15 ########## BBMenu ~ Fixed solid painter problem (colours show properly now). - Removed all damn WM_KEYDOWN referencing code. It aint in Linux so it aint in here! ~ Changed some of the text in the workspace menu to mimick the linux names. ~ Fixed [exec] commands so that they kill the menu upon activation. - Removed all underscore hotkey stuff, it really wasn't needed. - Cleaned up the code alot. This is really turning into a lean and mean menu =) BBWorkspaces ~ Fixed the workspace callback problem of constantly cycling the workspace names if one isn't found. BBWindow - Unloaded the files as they aren't used and it was just bloating the exe somewhat. BBKeys - Messed around with the internals a bit, streamlined and made the code more readable. ############################################################ Blackbox for Windows 0.0.14 ########## BImage ~ Changed bevel code. Removed some settings, kept others. It currently only uses Bevel1 and Raised or Flat. This is cos i haven't had time to look at the bb code properly. Blackbox + Some nice features... + New switches... current switches are: -version -help -install -uninstall and now... -rc path -style path -menu path this lets you specify a new path for the blackboxrc/menu/style file. ~ Changed the help text. Now it's properly formatted. + Changed some code. If there is no blackboxrc file found anywhere, blackbox automatically creates one for you with default settings. If there is no menu, an empty file is created and you'll probably run into parser problems. Or you'll get no menu at all =) The middle menu should work however. If there is no style file found, it will create a default one for you and use all the default settings (quite fugly =). ~ Altered the loading of certain built-in items to improve performance and changed hook loading procedures. BBMenu - Returned [stylesdir] to it's former glory but it is as yet unlike the linux version. ~ Changed the default submenu entry and title height + 2. This gives everything more space to breathe and thigns look better now. BBDesk - Removed all traces of the MS implementation of X-Mouse. Hook + Added full hand written x-mouse support. It now works much better and wont' pick up on the desktop or any blackbox windows. You may notice a slight flicker in the title bar when using SloppyFocus. This is due to M$ internal workings which are super lame. I have to work around that and as a result there is a /slight/ and barely perceptable flicker every once in a while. ############################################################ Blackbox for Windows 0.0.13 ########## BBMenu ~ Changed the way the style folders work. Fixed a bug with [stylesmenu] which would cause it to load files undynamically (they wouldn't auto update on open). ~ Changed the items on the [config] menu to refresh blackbox upon selection. Blackbox - Removed BBKeys from the main build for reasons the shall become clear in a moment... BBApi + Moved some useful functions from BBMenu to the BBApi. I don't know why i left them there anyways =) ~ Changed the magicDWord value to that of Litestep's. Not because i want to emulate ls (*grin*) but because apps like Winamp have this number built in to let them remain on VWM desktops. It also means that if you run ls over bb, they can "sort" of be interchangable and the vwm won't matter =) BBPluginManager + WOOHOO! We have plugin support!!! I wrote up a nice little plugin loading and unloading system and it seems to work perfectly. Use the pluginsrc file to load plugins like the example in there. I have taken bbkeys from the main project and set it as an external dll. You can load it by using the ine in the pluginsrc file. If ya feel like doing somethign blackbox wise, contact me and i'll tell ya what you need in your mod =) (it also support litestep/darkstep mods with only a little bit of jostling) ~ Altered the manager somewhat, i had to remove some STL work and replace it with code that works but will slow me down in the future. I've noted this and hopefully i can have it fixed soon. ~ Altered it yet again, re-added STL stuff and got it working. Thanks to the folks in #c++ for that bit of advice. BImage ~ Changed the way cross-diagonal code renders. This should fix the nasty gdi leak that was happening. (pity it doesn't make it actually /look/ like cross-diagonals tho :( + Added bevels into the code. This is still quite early work and on some styles is looks quite disgusting, but more often than not it looks cool =) ~ Fixed Elliptic from showing now until i get round to fixing the code. Right now it falls through to Diagonal. ~ ARG! Turns out the colours are BACKWARDS!!! ARGGG!!!! Simple to fix but so goddamn annoying... Now everything looks nasty... damn damn damn... ############################################################ Blackbox for Windows 0.0.12 ########## BBMenu ~ Changed the way gradients are used and fixed a large and nasty memory leak. ~ Changed the way borders are handled. Now it actually works (a border with of greater than one made it look stupid) ~ Altered the border code cos it was buggin me. ~ Changed the text alignment some more. ~ Sorted out a nasty font problem. + Menu heights are now directly relational to the font size given in menuFontHeight. (warning, an odd numbered size will result in off-aligned scanlines) ~ Changed [nop] code. Now just shows a blank item, not a seperator bar as before. - Removed alot of useless old code. Cleaned things up alot code-wise. + Added the [config] menu. All it does now is set the values in the blackboxrc. The settings get initialized on a restart. ~ Changed font handling yet again. You can specify "menu.frame.fontHeight:" and "menu.title.fontHeight:". The title size is relational to the title.fontHeight and the frame height is relational to the frame.fontHeight. + Added windows-only settings. [shutdown] brings up the shutdown screen (strangly not working right). [kill] will kill blackbox dead. [logoff] will bring up the logoff screen. all in the format [value] (title). Blackbox / BBMenu + X-Mouse is back in! But don't fret, it turns out you could turn off XMouse all along! You can set the focusModel using the "session.focusModel:" setting in the [config] menu or blackboxrc. It can be set to: AutoRaiseSloppyFocus, SloppyFocus or ClickToFocus. AutoRaise is X-Mouse style window raising, SloppyFocus just focus' the windows when you pass over them but doesn't raise them and ClickToFocus is the standard way of focusing by clicking. These settings are read on restart and reconfigure. ~ Numerous bugfixes, small things too annoying to mention. + Added logging for all errors. The output will go into Blackbox.log. Please send this to me when you get any errors. BBDesk + Added support for "session.fullMaximization". Basically if this is set to true, it will maximize windows to the full height and width of the screen, else it cuts it off at teh toolbar level. (as there is no toolbar as yet, it just doesn't set any SDA). + Added WindowShading support. A double click to the title bar of any window will shade and unshade it according to the current state. (thanks go to nivenh for the method of that baby, i had one way of doing it, but let's just say niv's was "simpler" =)). Basically all this windowshading code comes straight from winctrl.dll (well i had to play with it a bit). All thanks go to mirul. + Added the ability to grow the current window upwards and sideways. A right click to the "Maximize" button on the corner of any window will grow it's width to the edges of the screen. A middle click to the same button will grow it's height to the worksace maximum. + A middle click to the titlebar of any window will send the window down to the bottom of the Zorder. ~ Finally fixed BBDesk from showing up on the process' list in the WinNT task manager. BBKeys + New module type thing in BBKeys. Functions just like hotkey for litestep except for the config part. You now need a bbkeysrc file which has to be in the root directory. Check the included file in the zip for settings formats. ############################################################ Blackbox for Windows 0.0.10 ########## BBMenu ~ Fixed the workspaces menu. Should show now. - First off, removed all the old gradient code. + Second, added a whole host of new code. (that's why there is a version boost). It now correctly support's the BImage lib. This has the added bonus of being able to produce... yup, you guessed em, scanlines =) Feel free to play around and see what cool designs you can come up with =) Set the item as "Interlaced" to see the scanlines. + Cleaned up a few little memory issues. + Now supports Rectangle, Horizontal, Vertical, Pipecross etc.. basically everything bar pyramid,elliptical and crossdiagonal... oh yeah, and only horizontal will work on the menu.frame right now... ~ Square folder icons are now much cooler. they are empty and change colour on activation (like linux) ~ The popup looks /slightly/ different no? That's cos it's shrunk down 8 pixels to 12 pixels per menu item. this is identical to linux so no complaints! ~ Changed the [stylesdir] code not to read subdirs. It also now sorts alphabetically. - Removed minimum width settings. ~ Sorted out most of the alignment problems. Blackbox - Removed all XMouse functionality. Too much damn hassle and only empy actually liked it. ~ More damn problems with system wide variables. I "hope" i have them all fixed now. + Added checking for explorer as the shell. (Won't notify though) ~ Fixed the mouse appearing in the corner at startup bug i think. BBSettings + Added checking for pre 0.61 style bullet settings. BBApi ~ Okay, this time i think i /really/ have got the ReadColor() stuff down. Still no support for shading yet. ############################################################ Blackbox for Windows 0.0.07 ########## API ~ Messed around with the ReadColor() code again. Just when i think its fixed it goes and messes up. I fixed it well enough now anyways. ~ Rewrote my formatted tokenizing routine from scratch.... much better now. the previous one wouldn't tokenize anything past a single white space... BBSettings ~ Altered one of the reading paths. imageDither wasn't being read right (it was looking for the wrong string) + Inserted formatting so that it reads the values for image styles (bevel, gradient, flat etc). This was originally done during the config reading for the Menu but i decided it would make more sense to put it into the settings routines. - Removed them when i realised they wouldn't work. i was using strstr() and its case sensitive which means it cant realistically be used. what a waste of an hour and a half... (at current writing its 4am now... that means i've been up working on blackbox for a good.... oooh... 42 hours =) (i brought the kettle into my room and am on my 6th cup of coffee... KMFDM and loud music is keeping me going) + I had a sudden inspiration and wrote all of that stuff out in a super sleek class and it works like a charm now. It's the first piece of code i have ever actually been "proud" of... BBDesk ~ Fixed all the desktop size setting code. it now sets the proper size on entry and restores the previous size on exit. Blackbox ~ Fixed it so that it re-initializes all System-wide parameters i set to their original values upon exit. - Removed annoying Explorer check on startup. I think everyone knows when they are under explorer don't you? + Added [reconfig] support. ~ Fixed all the settings problems. Works a charm now. BBMenu + After spending a good couple of hours re-writing the damn menu to incorperate this new image lib i came upon one helluva large obstacle. I wont' bore you with it now but to fix it will require an entire rethink of the menu process. So i didn't bother with that =) I just wrote another small gradient routine. You are now free to use "Horizontal" to include horizontal gradients. This won't work on the frame settings tho, just the title and selector. ~ Fixed position of arrows when in long named menues and set to "right". + Arrows now reverse themselves if set to left. Thus pointing to the previous folder. + I reversed the selected gradients. Opinions? ~ I have now capped menues with long titled items at 300 pixels. ~ Removed a few chunks of obsolete code. ~ Adjusted submenu showing so that it appears at the position of the first menu item rather than at the title. + Big addition. I have added [stylesdir] and [stylesmenu] support. Currently however it only lists the files in a straight vertical order. This means that if you have alot fo styles in there (like me) it likes long and ugly. Hopefully i can work out a dual column system soon. + Added ability to read pre-0.61.1 styles. (They use retarded values for hilite colours) + Now (in theory) supports bevels... that is, bevel1 and bevel2 in the style... ~ Shrunk the size of the square bullet. @ I also have added pr0npasswords.txt which is (guess what =). Also, another stye by m3gboy... very nice looking... ############################################################ Blackbox for Windows 0.0.06 ########## MENU ~ Fixed all menues. they no longer crash. the menu wasn't killing off its children before exiting which was causing a lockup. ~ Fixed annoying restart bug. i was using SendMessage instead of PostMessage which caused the menu to wait for a return which never came. ~ Fixed the menu so that if bullet's are positioned "left" they no longer overlap the text. all text becomes indented when selected. - Removed a setting from the menu that set the maximum size of a popup window. now they are as long as the longest name. please contact me if you don't like it (long task names can look ugly). ~ Fixed bug that would make the menu appear in its default style rather than the one supplied in the style file. ~ Changed the [include] parsing code. If the file it tries to include isn't there it posts a messagebox and inserts an "[empty]" item. ~ Fixed most of the menu parsing routines to use PostMessage instead of SendMessage, i don't want any more hangups =) ~ Replaced initial WnExec routines with a better hand written ShellExec routine. ~ Changed menu showing position aswell. It now mimicks Linux and appears in the middle of the title rather than at a corner. Also, the cursor for moving windows is the same as the linux one. API ~ Changed the ReadNextCommand() function to strip whitespace from the beginning of lines rather than straight looking for comments. (if there was any whitespace before a comment it would b0rk the line) ~ Finally fixed ReadColor(). It now works a charm. BBDesk ~ Fixed the desktop so that it sets the desktop area on startup to the maximum size (just in case you are coming from explorer straight to bb as it keeps the gap at the bottomf or the taskbar). It restores this on quit. VWM + Major changes to workspace menu. Now has "icons" section listing all currently minimized apps on the computer. + Each workspace name now has its own submenu. This contains all apps that are running (minimized or not) on that desktop. + Right clicking any app in that submenu will zoom it to the current workspace. + Clicking on the vwm name in the menu will now switch to the corresponding vwm. ~ Re-wrote the entire vwm. took it out of the sketchy C base it was in and put it into C++. Had to iron out several bugs and now the vwm is lean and very mean. BBSettings + Added the BBSettings class which recieves all info from the style / blackboxrc files and puts it into memory. This'll speed things up. + Added compile time excluders to stop BBSettings reading values unsupported yet (like windows/toolbar). Noticeable speed increase. + Finally added the WriteRCSettings() function which writes all the values from the blackboxrc currently in memory to the blackboxrc file. Defaults to writing at exit or restart but can be called any time. Blackbox ~ Fixed restart problems and sorted out delete errors that were occasionally coming up. + Added the ability to change styles on the fly. Still rather messy as it has to restart to do it (it writes a new value for the style file to the bbrc and restarts). But restart on my pc is one second anyways. /Slightly/ faster than a Litestep recycle no? + Added Xmouse functionality. It plays up with the bbmenu atm. I'm going to have to do more handle checking to fix that.. + Implemented the opaqueMove setting. If set it will just drag the outline border of the window rather than the whole thing. ~ Fixed the version info for the program. @ Still can't get the damn DOS command line main() function to work right. Anyone got any ideas? It keeps going to WinMain()... + Added File error correction for everything. It now checks every request for a file for location. Should fix some nasty crashign bugs i've had in the past. + Added support for the rootCommand setting in the style. Blackbox will try and run whatever is in the rootCommand line on startup or restart. BSetBG + Initial version. Works fine. Not being released until i can sort out solid colour background setting for the desktop. i can set the reg value but don't know how (yet) to system wide update it. BImage + Merged in galois' CGradient lib into the codebase. Parts work okay but the pyramid and radial gradients are just too slow currently. Also, my gradient rendering routines are not suited to anything but the menu atm. When i get the BImage lib up to scratch i'll redo them all. ##################################################################################################