/* ============================================================================ xoblite -> an alternative shell based on Blackbox for Windows Copyright © 2002-2005 Karl-Henrik Henriksson [qwilk] Copyright © 2001-2004 The Blackbox for Windows Development Team http://xoblite.net/ - #bb4win on irc.freenode.net ============================================================================ Blackbox for Windows is free software, released under the GNU General Public License (GPL version 2 or later), with an extension that allows linking of proprietary modules under a controlled interface. What this means is that plugins etc. are allowed to be released under any license the author wishes. Please note, however, that the original Blackbox gradient math code used in Blackbox for Windows is available under the BSD license. http://www.fsf.org/licenses/gpl.html http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. For additional license information, please read the included license.html ============================================================================ */ #ifndef __BBSLIT_H #define __BBSLIT_H #ifndef _WIN32_IE #define _WIN32_IE 0x0500 // Enables all the needed define's in ShellAPI.h #endif #include "BBApi.h" #include "BImage.h" #include "Settings.h" #include "Menu/MenuMaker.h" #include "PluginManager.h" #include <windows.h> #include <string> #include <vector> #include <ShellAPI.h> using namespace std; #define SLIT_RECONFIGURE_LOCK_TIMER 1 #define SLIT_AUTOHIDE_TIMER 2 #define SLIT_MOUSEHOVER_TIMER 3 //==================== typedef struct { HWND hwndPlugin; int x; int y; int width; int height; } slitPluginItem; typedef vector<slitPluginItem> SlitPluginsVector; //=========================================================================== class Slit { public: Slit(HINSTANCE hInstance); ~Slit(); friend LRESULT CALLBACK SlitWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); void ReconfigureLock(bool enable); void GetSettings(); void UpdatePosition(); void UpdatePluginPositions(); void ToggleAlwaysOnTop(); bool CheckIfMouseHover(); void AutoShow(); void AutoHide(); //==================== HINSTANCE hSlitInstance; HWND hSlitWnd; // Slit window handle HWND hBlackboxWnd; // Blackbox window handle int ScreenWidth, ScreenHeight; int SlitX, SlitY, SlitWidth, SlitHeight; bool SlitVertical; Menu *slitMenu, *slitSubMenu, *slitSubMenu2; bool reconfigureLock; bool SlitAutoHideEnabled; bool SlitAutoHidden, SlitAutoShown; bool SlitAutoHiding, SlitAutoShowing; int SlitAutoCurrentPos; int SlitAutoHideTarget, SlitAutoShowTarget; bool SlitPosInProgress; SlitPluginsVector SlitPlugins; vector<slitPluginItem>::iterator plugin, member, firstInGroup, lastInGroup; HDC cachedBackground; bool cachedBackgroundExists; }; //=========================================================================== #endif /* __BBSLIT_H */
w | e | b | c | p | p |
|