800{
801 switch (uMsg)
802 {
803
804
805 case WM_HELP:
806 {
807 BBExecute(GetDesktopWindow(), NULL,
"http://xoblite.net/docs/",
"",
"", SW_SHOWNORMAL,
true);
808 return TRUE;
809 }
810
811
812
813 case WM_HOTKEY:
814 {
816 }
817 break;
818
819
820
821 case WM_QUERYENDSESSION:
822 {
824 {
825 if (lParam & ENDSESSION_LOGOFF)
debugLogoff =
true;
827 if (
pSettings->debugLogging)
Log(
"xoblite",
"WM_QUERYENDSESSION | SYSTEM/CRITICAL");
828 return TRUE;
829 }
831 {
833 {
834 if (
debugLogoff)
Log(
"xoblite",
"WM_QUERYENDSESSION | XOBLITE/LOGOFF");
835 else if (
debugReboot)
Log(
"xoblite",
"WM_QUERYENDSESSION | XOBLITE/REBOOT");
836 else Log(
"xoblite",
"WM_QUERYENDSESSION | XOBLITE/SHUTDOWN");
837 }
838 return TRUE;
839 }
840 else
841 {
843 {
845 else if (lParam & ENDSESSION_LOGOFF)
Log(
"xoblite",
"WM_QUERYENDSESSION | SYSTEM/LOGOFF");
846 else Log(
"xoblite",
"WM_QUERYENDSESSION | SYSTEM/SHUTDOWN_or_REBOOT");
847 }
848
849
850
851
852
853
854
855
856
857
858 }
859
860 if (lParam & ENDSESSION_LOGOFF)
debugLogoff =
true;
862
863 return TRUE;
864 }
865
866 case WM_ENDSESSION:
867 {
868 if ((wParam == TRUE) &&
pSettings->debugLogging)
Log(
"xoblite",
"WM_ENDSESSION");
869
870 return 0;
871 }
872
873
874
875 case WM_SYSCOMMAND:
876 case WM_KEYDOWN:
877 {
878 if (wParam == SC_CLOSE)
879 {
880 if (
pSettings->debugLogging)
Log(
"xoblite",
"SC_CLOSE");
882 return 0;
883 }
884 else return DefWindowProc(hWnd, uMsg, wParam, lParam);
885 }
886
887
888
889 case WM_CLOSE:
891 {
892 if (
pSettings->debugLogging && (uMsg==WM_CLOSE))
Log(
"xoblite",
"SC_CLOSE");
894 PostQuitMessage(0);
895 }
896 break;
897
898
899
901 {
902 switch (wParam)
903 {
904 case 0:
906 break;
907 case 1:
909 break;
910 case 2:
912 break;
913 case 3:
915 break;
916 case 4:
918 break;
919 case 5:
920
921 LockWorkStation();
923 break;
924 default:
926 break;
927 }
928 return 0;
929 }
930
931
932
934 {
936 {
939 }
941 {
942
943
944 pDock->ReconfigureLock(
true);
949 }
950 }
951 break;
952
953
954
956 {
957 if (lParam != 0)
958 {
960 strcpy_s(themePath, (LPCSTR)lParam);
962 }
963 }
964 break;
965
966
967
969 {
970
971 if (lParam != 0)
972 {
974 strcpy_s(style, (LPCSTR)lParam);
978
980 {
982 break;
983 }
985 }
986
987
989
990
992 strcpy_s(a1,
ReadString(
pSettings->styleFile,
"style.name:",
"[Style name not specified]"));
994
995
996
997 sprintf(msg, "Applying \"%s\" by %s...", a1, a2);
999
1000
1002
1003
1004 pDock->ReconfigureLock(
true);
1005
1006
1008
1009
1010
1011 SetWindowPos(
pDesktop->hDesktopWnd, GetDesktopWindow(), 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW | SWP_NOSENDCHANGING);
1012
1013
1015
1017 }
1018 break;
1019
1020
1021
1022 case WM_DISPLAYCHANGE:
1023 {
1025 }
1026 break;
1027
1028
1029
1030 case WM_DPICHANGED:
1031 {
1032 int dpiValue = (int)LOWORD(wParam);
1033 int scaleFactor = 0;
1034
1035 switch (dpiValue)
1036 {
1037 case 384: { scaleFactor = 400; } break;
1038 case 336: { scaleFactor = 350; } break;
1039 case 288: { scaleFactor = 300; } break;
1040 case 240: { scaleFactor = 250; } break;
1041 case 216: { scaleFactor = 225; } break;
1042 case 192: { scaleFactor = 200; } break;
1043 case 168: { scaleFactor = 175; } break;
1044 case 144: { scaleFactor = 150; } break;
1045 case 120: { scaleFactor = 125; } break;
1046 case 96: { scaleFactor = 100; } break;
1047 default: break;
1048 }
1049
1050 char msg[350];
1051 if (scaleFactor > 0) sprintf(msg,
"Windows UI scaling factor has changed to %d%%. xoblite HiDPI scaling factor is set to %dx. ", scaleFactor,
pSettings->scalingFactorHiDPI);
1052 else sprintf(msg,
"Windows UI scaling resolution has changed to %d DPI. xoblite HiDPI scaling factor is set to %dx. ", dpiValue,
pSettings->scalingFactorHiDPI);
1054
1055 return 0;
1056 }
1057
1058
1059
1061 {
1062 switch (wParam)
1063 {
1064 case 0:
1066 break;
1067 case 1:
1069 break;
1070 case 2:
1072 break;
1073 case 3:
1075 break;
1076 case 4:
1078 break;
1079 default:
1080 break;
1081 }
1082 return 0;
1083 }
1084 break;
1085
1086
1087
1089 {
1091 {
1094 }
1095 else
1096 {
1099 }
1100
1101
1103 if (!
pSettings->dockHidden) SetForegroundWindow(
pDock->hDockWnd);
1105
1107 }
1108 break;
1109
1110
1111
1113 {
1115 else RunDlg( NULL, NULL, NULL, NULL, NULL, 0 );
1116 }
1117 break;
1118
1119 case WM_CTLCOLOREDIT:
1120 {
1121
1122
1123 SetTextColor((HDC)wParam, 0x000000);
1124 SetBkColor((HDC)wParam, 0xffffff);
1125 return (LRESULT)GetStockObject(NULL_BRUSH);
1126 }
1127 break;
1128
1129
1130
1132 {
1133 UINT *msgArray = (UINT*)lParam;
1134 for (int size = 0; msgArray[size] != 0; size++)
1135 {
1137 }
1138 break;
1139 }
1140
1142 {
1143 UINT *msgArray = (UINT*)lParam;
1144 for (int size = 0; msgArray[size] != 0; size++)
1145 {
1147 }
1148 break;
1149 }
1150
1151
1152
1153 case WM_COPYDATA:
1154 {
1155 PCOPYDATASTRUCT pcds = (PCOPYDATASTRUCT)lParam;
1158 break;
1159 }
1160
1161
1162
1163 case WM_DROPFILES:
1164 {
1165
1166 if (
pDesktop)
return PostMessage(
pDesktop->hDesktopWnd, WM_DROPFILES, wParam, lParam);
1167 }
1168 break;
1169
1170
1171
1172 case WM_TIMER:
1173 {
1174
1175
1176
1177
1179 {
1181 {
1182 if (
pSettings->underExplorer && IsWindowVisible(FindWindow(
"Shell_TrayWnd", NULL)))
1183 {
1186 }
1187 }
1188 }
1189
1190
1191
1192
1194
1195
1196
1197
1198
1200 {
1203 }
1204
1205 return 0;
1206 }
1207
1208
1209
1211 {
1213 strcpy_s(broam, (LPCSTR)lParam);
1215 }
1216
1217
1218
1220 {
1221 switch (LOWORD(lParam))
1222 {
1223 case WM_LBUTTONUP:
1224 {
1227 {
1228
1229 SetWindowPos(
pToolbar->hToolbarWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
1230 SetForegroundWindow(
pToolbar->hToolbarWnd);
1232 }
1233 break;
1234 }
1235
1236 case WM_RBUTTONDOWN:
1237 {
1240 break;
1241 }
1242
1243 case WM_MOUSEWHEEL:
1244 {
1246 break;
1247 }
1248
1249 default: { break; }
1250 }
1251 }
1252
1253
1254
1255 default:
1256 {
1258 {
1260 {
1261
1266
1272 xobIconData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
1274 }
1275 return 0;
1276 }
1277
1278
1279
1281 {
1282 unsigned int shellMessage = uMsg;
1283 WPARAM replaceParam = wParam;
1284
1286 {
1287 if (wParam == HSHELL_WINDOWCREATED) shellMessage =
BB_ADDTASK;
1288 else if (wParam == HSHELL_WINDOWDESTROYED) shellMessage =
BB_REMOVETASK;
1290 else if (wParam == HSHELL_WINDOWACTIVATED) shellMessage =
BB_ACTIVETASK;
1291 else if (wParam == HSHELL_RUDEAPPACTIVATED)
1292 {
1293
1294
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321 }
1322 else if (wParam == HSHELL_GETMINRECT) shellMessage =
BB_MINMAXTASK;
1323 else if (wParam == HSHELL_REDRAW) shellMessage =
BB_REDRAW;
1324 else if (wParam == HSHELL_FLASH)
1325 {
1326
1328 pTaskbar->flashingHwnd = (HWND)lParam;
1329 }
1330 else
1331 {
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356 return DefWindowProc(hWnd, uMsg, wParam, lParam);
1357 }
1358
1359 replaceParam = (WPARAM)lParam;
1360 }
1361
1362
1363
1365 {
1366 LRESULT lResult;
1367 if (
pMessageManager->SendMessage(shellMessage, replaceParam, lParam, &lResult))
return lResult;
1368 }
1369 }
1370
1371 return DefWindowProc(hWnd, uMsg, wParam, lParam);
1372 }
1373
1374
1375 }
1376
1377 return DefWindowProc(hWnd, uMsg, wParam, lParam);
1378}
void WriteBool(LPCSTR fp, LPCSTR keyword, bool value)
Definition BBApi.cpp:3131
Desktop * pDesktop
Definition Blackbox.cpp:37
Workspaces * pWorkspaces
Definition Blackbox.cpp:51
int MBoxErrorFile(LPCSTR szFile)
Definition BBApi.cpp:1612
Taskbar * pTaskbar
Definition Blackbox.cpp:47
LPSTR ReadString(LPCSTR fp, LPCSTR szString, LPSTR szDefault)
Definition BBApi.cpp:544
void BBSmartExecute(LPSTR inputString)
Definition BBApi.cpp:1767
MenuCommon * pMenuCommon
Definition Blackbox.cpp:41
bool FileExists(LPCSTR szFileName)
Definition BBApi.cpp:819
LPCSTR stylePath(LPCSTR other)
Definition BBApi.cpp:959
LPSTR StrRemoveEncap(LPSTR string)
Definition BBApi.cpp:406
void Log(LPCSTR des, LPCSTR line)
Definition BBApi.cpp:638
HINSTANCE BBExecute(HWND Owner, LPCSTR szOperation, LPCSTR szCommand, LPCSTR szArgs, LPCSTR szDirectory, int nShowCmd, bool noErrorMsgs)
Definition BBApi.cpp:1648
void ReplaceEnvVars(LPSTR string)
Definition BBApi.cpp:2594
void ReplaceShellFolders(LPSTR string)
Definition BBApi.cpp:2633
Settings * pSettings
Definition Blackbox.cpp:46
HWND GetBBWnd()
Definition BBApi.cpp:128
#define BB_SHUTDOWN
Definition BBApi.h:175
#define BB_QUIT
Definition BBApi.h:145
#define BB_ACTIVETASK
Definition BBApi.h:198
#define BB_REGISTERMESSAGE
Definition BBApi.h:142
#define BB_RUN
Definition BBApi.h:176
#define BB_RESTART
Definition BBApi.h:146
#define BB_CONSOLEMESSAGE
Definition BBApi.h:165
#define BB_TOGGLEPLUGINS
Definition BBApi.h:167
#define CONSOLE_REGULAR_MESSAGE
Definition BBApi.h:297
#define BB_TRAYICONMESSAGE
Definition BBApi.h:247
#define BB_BROADCAST
Definition BBApi.h:245
#define BB_RECONFIGURE
Definition BBApi.h:147
#define BB_ADDTASK
Definition BBApi.h:195
#define BB_REDRAW
Definition BBApi.h:200
#define BB_SETTHEME
Definition BBApi.h:151
#define BB_MINMAXTASK
Definition BBApi.h:199
#define BB_UNREGISTERMESSAGE
Definition BBApi.h:143
#define BB_SETSTYLE
Definition BBApi.h:148
#define BB_ACTIVATESHELLWINDOW
Definition BBApi.h:197
#define BB_REMOVETASK
Definition BBApi.h:196
#define BB_EDITFILE
Definition BBApi.h:155
#define MAX_LINE_LENGTH
Definition BBApi.h:64
#define CONSOLE_INFORMATION_MESSAGE
Definition BBApi.h:298
Hotkeys * pHotkeys
Definition Blackbox.cpp:39
#define ENDSESSION_CRITICAL
Definition Blackbox.cpp:129
bool exitInProgress
Definition Blackbox.cpp:73
Toolbar * pToolbar
Definition Blackbox.cpp:48
void restartBlackboxStart()
Definition Blackbox.cpp:703
NOTIFYICONDATA xobIconData
Definition Blackbox.cpp:67
bool debugReboot
Definition Blackbox.cpp:76
void restartBlackboxStop()
Definition Blackbox.cpp:680
HWND hMainWnd
Definition Blackbox.cpp:62
bool debugLogoff
Definition Blackbox.cpp:75
RUNDLGPROC RunDlg
Definition Blackbox.cpp:88
void ExecuteRootCommand(void *)
Definition Blackbox.cpp:1519
void ShutdownWindows(int state, bool skipAsking)
Definition Blackbox.cpp:1552
Console * pConsole
Definition Blackbox.cpp:36
HINSTANCE hMainInstance
Definition Blackbox.cpp:61
Dock * pDock
Definition Blackbox.cpp:38
void startBlackbox()
Definition Blackbox.cpp:449
unsigned int WM_SHELLHOOKMESSAGE
Definition Blackbox.cpp:120
void HideDesktopIcons(bool hide)
Definition Blackbox.cpp:1709
int sessionDuration
Definition Blackbox.cpp:79
bool pausedRestart
Definition Blackbox.cpp:71
bool debugShutdown
Definition Blackbox.cpp:77
MessageManager * pMessageManager
Definition Blackbox.cpp:42
#define ENDSESSION_CLOSEAPP
Definition Blackbox.cpp:126
static UINT WM_TASKBARCREATED_MESSAGE
Definition Blackbox.cpp:69
void CheckForUpdates()
Definition Blackbox.cpp:1804
MSWINSHUTDOWNPROC MSWinShutdown
Definition Blackbox.cpp:86
void exitBlackbox()
Definition Blackbox.cpp:630
#define CHECK_EXPLORER_HIDDEN_TIMER
Definition Blackbox.h:64
#define CHECK_FOR_UPDATES_DELAY_TIMER
Definition Blackbox.h:65
#define SESSION_DURATION_TIMER
Definition Blackbox.h:63
void HideExplorer(bool hideOnStartup)
Definition Broams.cpp:2589
bool ExecuteBroam(LPSTR broam, HINSTANCE hMainInstance)
Definition Broams.cpp:56
void PlaySoundFX(int sound)
Definition Sounds.cpp:40
@ SFX_LOCK_WORKSTATION
Definition Sounds.h:61
@ SFX_MENU_CLICK
Definition Sounds.h:45
@ SFX_MENU_NAVIGATE
Definition Sounds.h:43
bool SetTheme(LPSTR themePath, bool startingUp)
Definition Themes.cpp:47