mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Changes by JamesAC and spx to the "About" dialog.
This commit is contained in:
parent
494a7c77ce
commit
d9137c2413
@ -28,8 +28,8 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,3,0,515
|
FILEVERSION 1,3,0,520
|
||||||
PRODUCTVERSION 1,3,0,515
|
PRODUCTVERSION 1,3,0,520
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -45,12 +45,12 @@ BEGIN
|
|||||||
BLOCK "040b04b0"
|
BLOCK "040b04b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter"
|
VALUE "FileDescription", "Rainmeter - A Customizable Resource Meter"
|
||||||
VALUE "FileVersion", "1, 3, 0, 515"
|
VALUE "FileVersion", "1, 3, 0, 520"
|
||||||
VALUE "InternalName", "Rainmeter"
|
VALUE "InternalName", "Rainmeter"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy"
|
VALUE "LegalCopyright", "Copyright (C) 2010 - Rainy"
|
||||||
VALUE "OriginalFilename", "Rainmeter.exe"
|
VALUE "OriginalFilename", "Rainmeter.exe"
|
||||||
VALUE "ProductName", "Rainmeter"
|
VALUE "ProductName", "Rainmeter"
|
||||||
VALUE "ProductVersion", "1, 3, 0, 515"
|
VALUE "ProductVersion", "1, 3, 0, 520"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -29,6 +29,7 @@ extern CRainmeter* Rainmeter;
|
|||||||
|
|
||||||
INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||||
HWND g_DialogWin = NULL;
|
HWND g_DialogWin = NULL;
|
||||||
|
VOID UpdateWidgets(HWND window);
|
||||||
|
|
||||||
struct PLUGIN_INFO
|
struct PLUGIN_INFO
|
||||||
{
|
{
|
||||||
@ -43,7 +44,7 @@ HWND OpenAboutDialog(HWND hwndOwner, HINSTANCE instance)
|
|||||||
if (g_DialogWin == NULL)
|
if (g_DialogWin == NULL)
|
||||||
{
|
{
|
||||||
g_DialogWin = CreateDialog(instance, MAKEINTRESOURCE(IDD_ABOUT_DIALOG), hwndOwner, AboutProc);
|
g_DialogWin = CreateDialog(instance, MAKEINTRESOURCE(IDD_ABOUT_DIALOG), hwndOwner, AboutProc);
|
||||||
|
|
||||||
if (g_DialogWin)
|
if (g_DialogWin)
|
||||||
{
|
{
|
||||||
HICON hIcon = LoadIcon(instance, MAKEINTRESOURCE(IDI_TRAY));
|
HICON hIcon = LoadIcon(instance, MAKEINTRESOURCE(IDI_TRAY));
|
||||||
@ -61,72 +62,109 @@ void UpdateAboutStatistics()
|
|||||||
if (g_DialogWin != NULL && IsWindowVisible(g_DialogWin))
|
if (g_DialogWin != NULL && IsWindowVisible(g_DialogWin))
|
||||||
{
|
{
|
||||||
HWND widget;
|
HWND widget;
|
||||||
widget = GetDlgItem(g_DialogWin, IDC_CONFIG_TAB);
|
widget = GetDlgItem(g_DialogWin, IDC_ABOUT_ENTRIES);
|
||||||
int selected = TabCtrl_GetCurSel(widget);
|
int selected = (int)SendMessage(widget, LB_GETCURSEL, NULL, NULL);
|
||||||
|
int count = (int)SendMessage(widget, LB_GETCOUNT, NULL, NULL);
|
||||||
int current = 0;
|
int current = 0;
|
||||||
|
|
||||||
widget = GetDlgItem(g_DialogWin, IDC_STATISTICS);
|
widget = GetDlgItem(g_DialogWin, IDC_STATISTICS);
|
||||||
SendMessage(widget, WM_SETREDRAW, 0, 0);
|
SendMessage(widget, WM_SETREDRAW, 0, 0);
|
||||||
|
|
||||||
std::map<std::wstring, CMeterWindow*>& windows = Rainmeter->GetAllMeterWindows();
|
if (selected == 0)
|
||||||
|
|
||||||
std::map<std::wstring, CMeterWindow*>::const_iterator iter = windows.begin();
|
|
||||||
for( ; iter != windows.end(); ++iter)
|
|
||||||
{
|
{
|
||||||
if (current == selected)
|
int count = ListView_GetItemCount(widget);
|
||||||
|
|
||||||
|
std::list<CRainmeter::LOG_INFO>::const_iterator iter = Rainmeter->m_LogData.begin();
|
||||||
|
LVITEM vitem;
|
||||||
|
vitem.mask = LVIF_TEXT;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for ( ; iter != Rainmeter->m_LogData.end(); ++iter)
|
||||||
{
|
{
|
||||||
int count = ListView_GetItemCount(widget);
|
if (i < count)
|
||||||
|
|
||||||
CMeterWindow* meterWindow = (*iter).second;
|
|
||||||
std::list<CMeasure*>& measures = meterWindow->GetMeasures();
|
|
||||||
|
|
||||||
int index = 0;
|
|
||||||
std::list<CMeasure*>::const_iterator i = measures.begin();
|
|
||||||
for( ; i != measures.end(); ++i)
|
|
||||||
{
|
{
|
||||||
const WCHAR* name = (*i)->GetName();
|
ListView_SetItemText(widget, i, 0, (WCHAR*)(*iter).type.c_str());
|
||||||
const WCHAR* val = (*i)->GetStats();
|
|
||||||
|
|
||||||
std::wstring range;
|
|
||||||
WCHAR buffer[256];
|
|
||||||
double minVal = (*i)->GetMinValue();
|
|
||||||
double maxVal = (*i)->GetMaxValue();
|
|
||||||
CMeasure::GetScaledValue(1, minVal, buffer);
|
|
||||||
range = buffer;
|
|
||||||
range += L" - ";
|
|
||||||
CMeasure::GetScaledValue(1, maxVal, buffer);
|
|
||||||
range += buffer;
|
|
||||||
|
|
||||||
if (name && wcslen(name) > 0)
|
|
||||||
{
|
|
||||||
if (index < count)
|
|
||||||
{
|
|
||||||
ListView_SetItemText(widget, index, 0, (WCHAR*)name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LVITEM vitem;
|
|
||||||
vitem.mask = LVIF_TEXT;
|
|
||||||
vitem.iItem = 0;
|
|
||||||
vitem.iSubItem = 0;
|
|
||||||
vitem.pszText = (WCHAR*)name;
|
|
||||||
ListView_InsertItem(widget, &vitem);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (val && wcslen(val) > 0)
|
|
||||||
{
|
|
||||||
ListView_SetItemText(widget, index, 1, (WCHAR*)val);
|
|
||||||
}
|
|
||||||
ListView_SetItemText(widget, index, 2, (WCHAR*)range.c_str());
|
|
||||||
++index;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vitem.iItem = i;
|
||||||
|
vitem.iSubItem = 0;
|
||||||
|
vitem.pszText = (WCHAR*)(*iter).type.c_str();
|
||||||
|
ListView_InsertItem(widget, &vitem);
|
||||||
|
}
|
||||||
|
ListView_SetItemText(widget, i, 1, (WCHAR*)(*iter).timestamp.c_str());
|
||||||
|
ListView_SetItemText(widget, i, 2, (WCHAR*)(*iter).message.c_str());
|
||||||
|
|
||||||
break;
|
++i;
|
||||||
}
|
}
|
||||||
++current;
|
|
||||||
}
|
}
|
||||||
|
else if (selected == 2)
|
||||||
|
{
|
||||||
|
widget = GetDlgItem(g_DialogWin, IDC_ABOUT_ENTRIES);
|
||||||
|
SendMessage(widget, LB_SETCURSEL, 1, NULL);
|
||||||
|
UpdateWidgets(g_DialogWin);
|
||||||
|
}
|
||||||
|
else if (selected > 2)
|
||||||
|
{
|
||||||
|
std::map<std::wstring, CMeterWindow*>& windows = Rainmeter->GetAllMeterWindows();
|
||||||
|
|
||||||
|
std::map<std::wstring, CMeterWindow*>::const_iterator iter = windows.begin();
|
||||||
|
for( ; iter != windows.end(); ++iter)
|
||||||
|
{
|
||||||
|
if (current == selected - 3)
|
||||||
|
{
|
||||||
|
int count = ListView_GetItemCount(widget);
|
||||||
|
|
||||||
|
CMeterWindow* meterWindow = (*iter).second;
|
||||||
|
std::list<CMeasure*>& measures = meterWindow->GetMeasures();
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
std::list<CMeasure*>::const_iterator i = measures.begin();
|
||||||
|
for( ; i != measures.end(); ++i)
|
||||||
|
{
|
||||||
|
const WCHAR* name = (*i)->GetName();
|
||||||
|
const WCHAR* val = (*i)->GetStats();
|
||||||
|
|
||||||
|
std::wstring range;
|
||||||
|
WCHAR buffer[256];
|
||||||
|
double minVal = (*i)->GetMinValue();
|
||||||
|
double maxVal = (*i)->GetMaxValue();
|
||||||
|
CMeasure::GetScaledValue(1, minVal, buffer);
|
||||||
|
range = buffer;
|
||||||
|
range += L" - ";
|
||||||
|
CMeasure::GetScaledValue(1, maxVal, buffer);
|
||||||
|
range += buffer;
|
||||||
|
|
||||||
|
if (name && wcslen(name) > 0)
|
||||||
|
{
|
||||||
|
if (index < count)
|
||||||
|
{
|
||||||
|
ListView_SetItemText(widget, index, 0, (WCHAR*)name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LVITEM vitem;
|
||||||
|
vitem.mask = LVIF_TEXT;
|
||||||
|
vitem.iItem = 0;
|
||||||
|
vitem.iSubItem = 0;
|
||||||
|
vitem.pszText = (WCHAR*)name;
|
||||||
|
ListView_InsertItem(widget, &vitem);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (val && wcslen(val) > 0)
|
||||||
|
{
|
||||||
|
ListView_SetItemText(widget, index, 1, (WCHAR*)val);
|
||||||
|
}
|
||||||
|
ListView_SetItemText(widget, index, 2, (WCHAR*)range.c_str());
|
||||||
|
++index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++current;
|
||||||
|
}
|
||||||
|
}
|
||||||
SendMessage(widget, WM_SETREDRAW, 1, 0);
|
SendMessage(widget, WM_SETREDRAW, 1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,14 +172,25 @@ void UpdateAboutStatistics()
|
|||||||
void UpdateWidgets(HWND window)
|
void UpdateWidgets(HWND window)
|
||||||
{
|
{
|
||||||
HWND widget;
|
HWND widget;
|
||||||
widget = GetDlgItem(g_DialogWin, IDC_CONFIG_TAB);
|
widget = GetDlgItem(g_DialogWin, IDC_ABOUT_ENTRIES);
|
||||||
int selected = TabCtrl_GetCurSel(widget);
|
int selected = (int)SendMessage(widget, LB_GETCURSEL, NULL, NULL);
|
||||||
int count = TabCtrl_GetItemCount(widget);
|
int count = (int)SendMessage(widget, LB_GETCOUNT, NULL, NULL);
|
||||||
|
|
||||||
widget = GetDlgItem(g_DialogWin, IDC_STATISTICS);
|
widget = GetDlgItem(g_DialogWin, IDC_STATISTICS);
|
||||||
ListView_DeleteAllItems(widget);
|
ListView_DeleteAllItems(widget);
|
||||||
|
|
||||||
if (count == selected + 1)
|
if (selected == 0)
|
||||||
|
{
|
||||||
|
LVCOLUMN lvc;
|
||||||
|
lvc.mask = LVCF_TEXT;
|
||||||
|
lvc.pszText = L"Log Type";
|
||||||
|
ListView_SetColumn(widget, 0, &lvc);
|
||||||
|
lvc.pszText = L"Time";
|
||||||
|
ListView_SetColumn(widget, 1, &lvc);
|
||||||
|
lvc.pszText = L"Message";
|
||||||
|
ListView_SetColumn(widget, 2, &lvc);
|
||||||
|
}
|
||||||
|
else if (selected == 1)
|
||||||
{
|
{
|
||||||
LVCOLUMN lvc;
|
LVCOLUMN lvc;
|
||||||
lvc.mask = LVCF_TEXT;
|
lvc.mask = LVCF_TEXT;
|
||||||
@ -185,7 +234,7 @@ void UpdateWidgets(HWND window)
|
|||||||
ListView_SetItemState(widget, 0, LVIS_SELECTED, LVIS_SELECTED);
|
ListView_SetItemState(widget, 0, LVIS_SELECTED, LVIS_SELECTED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LVCOLUMN lvc;
|
LVCOLUMN lvc;
|
||||||
lvc.mask = LVCF_TEXT;
|
lvc.mask = LVCF_TEXT;
|
||||||
@ -284,12 +333,12 @@ void RepositionControls(HWND hwndDlg)
|
|||||||
MapWindowPoints(widget, hwndDlg, (LPPOINT)&wr, 2);
|
MapWindowPoints(widget, hwndDlg, (LPPOINT)&wr, 2);
|
||||||
SetWindowPos(widget, NULL, ((r.right - (wr.right - wr.left)) / 2) + 9, wr.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
|
SetWindowPos(widget, NULL, ((r.right - (wr.right - wr.left)) / 2) + 9, wr.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
|
||||||
|
|
||||||
widget = GetDlgItem(hwndDlg, IDC_CONFIG_TAB);
|
widget = GetDlgItem(hwndDlg, IDC_ABOUT_ENTRIES);
|
||||||
SetWindowPos(widget, NULL, 0, 0, r.right - 22, r.bottom - 175, SWP_NOMOVE | SWP_NOZORDER);
|
SetWindowPos(widget, NULL, 0, 0, (r.right - 28) / 3, r.bottom - 170, SWP_NOMOVE | SWP_NOZORDER);
|
||||||
widget = GetDlgItem(hwndDlg, IDC_STATISTICS);
|
widget = GetDlgItem(hwndDlg, IDC_STATISTICS);
|
||||||
SetWindowPos(widget, NULL, 0, 0, r.right - 44, r.bottom - 210, SWP_NOMOVE | SWP_NOZORDER);
|
SetWindowPos(widget, NULL, 18 + ((r.right - 28) / 3), 130, 2 * ((r.right - 28) / 3), r.bottom - 170, SWP_NOZORDER);
|
||||||
widget = GetDlgItem(hwndDlg, IDOK);
|
widget = GetDlgItem(hwndDlg, IDOK);
|
||||||
SetWindowPos(widget, NULL, (r.right - br.right) / 2, r.bottom - br.bottom - 11, br.right, br.bottom, SWP_NOZORDER);
|
SetWindowPos(widget, NULL, (r.right - br.right) / 2, r.bottom - br.bottom - 9, br.right, br.bottom, SWP_NOZORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL OnInitAboutDialog(HWND window)
|
BOOL OnInitAboutDialog(HWND window)
|
||||||
@ -305,22 +354,27 @@ BOOL OnInitAboutDialog(HWND window)
|
|||||||
swprintf(tmpSz, L"Built on %s", ConvertToWide(__DATE__).c_str());
|
swprintf(tmpSz, L"Built on %s", ConvertToWide(__DATE__).c_str());
|
||||||
SetWindowText(widget, tmpSz);
|
SetWindowText(widget, tmpSz);
|
||||||
|
|
||||||
// Add tabs for each config
|
// Add entries for each config
|
||||||
widget = GetDlgItem(window, IDC_CONFIG_TAB);
|
widget = GetDlgItem(window, IDC_ABOUT_ENTRIES);
|
||||||
TCITEM tie;
|
|
||||||
tie.mask = TCIF_TEXT;
|
|
||||||
std::map<std::wstring, CMeterWindow*>& windows = Rainmeter->GetAllMeterWindows();
|
std::map<std::wstring, CMeterWindow*>& windows = Rainmeter->GetAllMeterWindows();
|
||||||
std::map<std::wstring, CMeterWindow*>::const_iterator iter = windows.begin();
|
std::map<std::wstring, CMeterWindow*>::const_iterator iter = windows.begin();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for( ; iter != windows.end(); ++iter)
|
for( ; iter != windows.end(); ++iter)
|
||||||
{
|
{
|
||||||
CMeterWindow* meterWindow = (*iter).second;
|
CMeterWindow* meterWindow = (*iter).second;
|
||||||
|
wchar_t* skinName = (WCHAR*)meterWindow->GetSkinName().c_str();
|
||||||
|
SendMessage(widget, LB_ADDSTRING, NULL, (LPARAM) skinName);
|
||||||
|
size_t namelength = wcslen(skinName);
|
||||||
|
|
||||||
tie.pszText = (WCHAR*)meterWindow->GetSkinName().c_str();
|
int currwidth = (INT)SendMessage(widget, LB_GETHORIZONTALEXTENT, NULL, NULL);
|
||||||
TabCtrl_InsertItem(widget, i++, &tie);
|
if(6 * namelength > currwidth)
|
||||||
|
{
|
||||||
|
SendMessage(widget, LB_SETHORIZONTALEXTENT, 6 * namelength, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
tie.pszText = L"Plugins";
|
SendMessage(widget, LB_INSERTSTRING, 0, (LPARAM) L"Log");
|
||||||
TabCtrl_InsertItem(widget, i, &tie);
|
SendMessage(widget, LB_INSERTSTRING, 1, (LPARAM) L"Plugins");
|
||||||
|
SendMessage(widget, LB_INSERTSTRING, 2, (LPARAM) L"--------------------");
|
||||||
|
|
||||||
// Add columns to the list view
|
// Add columns to the list view
|
||||||
widget = GetDlgItem(window, IDC_STATISTICS);
|
widget = GetDlgItem(window, IDC_STATISTICS);
|
||||||
@ -331,15 +385,15 @@ BOOL OnInitAboutDialog(HWND window)
|
|||||||
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
|
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
|
||||||
lvc.iSubItem = 0;
|
lvc.iSubItem = 0;
|
||||||
lvc.pszText = L"Measure";
|
lvc.pszText = L"Measure";
|
||||||
lvc.cx = 150;
|
lvc.cx = 110;
|
||||||
lvc.fmt = LVCFMT_LEFT; // left-aligned column
|
lvc.fmt = LVCFMT_LEFT; // left-aligned column
|
||||||
ListView_InsertColumn(widget, 0, &lvc);
|
ListView_InsertColumn(widget, 0, &lvc);
|
||||||
lvc.iSubItem = 1;
|
lvc.iSubItem = 1;
|
||||||
lvc.cx = 130;
|
lvc.cx = 100;
|
||||||
lvc.pszText = L"Value";
|
lvc.pszText = L"Value";
|
||||||
ListView_InsertColumn(widget, 1, &lvc);
|
ListView_InsertColumn(widget, 1, &lvc);
|
||||||
lvc.iSubItem = 1;
|
lvc.iSubItem = 1;
|
||||||
lvc.cx = 130;
|
lvc.cx = 150;
|
||||||
lvc.pszText = L"Range";
|
lvc.pszText = L"Range";
|
||||||
ListView_InsertColumn(widget, 2, &lvc);
|
ListView_InsertColumn(widget, 2, &lvc);
|
||||||
|
|
||||||
@ -374,17 +428,6 @@ INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPa
|
|||||||
RepositionControls(hwndDlg);
|
RepositionControls(hwndDlg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_NOTIFY:
|
|
||||||
{
|
|
||||||
LPNMHDR lpnmhdr = (LPNMHDR)lParam;
|
|
||||||
if (lpnmhdr->code == TCN_SELCHANGE)
|
|
||||||
{
|
|
||||||
UpdateWidgets(hwndDlg);
|
|
||||||
UpdateAboutStatistics();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
Rainmeter->SaveSettings();
|
Rainmeter->SaveSettings();
|
||||||
DestroyWindow(hwndDlg);
|
DestroyWindow(hwndDlg);
|
||||||
@ -410,6 +453,14 @@ INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPa
|
|||||||
DestroyWindow(hwndDlg);
|
DestroyWindow(hwndDlg);
|
||||||
g_DialogWin = NULL;
|
g_DialogWin = NULL;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
case IDC_ABOUT_ENTRIES:
|
||||||
|
if (HIWORD(wParam) == LBN_SELCHANGE)
|
||||||
|
{
|
||||||
|
UpdateWidgets(hwndDlg);
|
||||||
|
UpdateAboutStatistics();
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//Microsoft Developer Studio generated resource script.
|
// Microsoft Developer Studio generated resource script.
|
||||||
//
|
//
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
|
|||||||
// Menu
|
// Menu
|
||||||
//
|
//
|
||||||
|
|
||||||
IDR_CONTEXT_MENU MENU DISCARDABLE
|
IDR_CONTEXT_MENU MENU DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "Context"
|
POPUP "Context"
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -38,20 +38,20 @@ BEGIN
|
|||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
POPUP "Logging"
|
POPUP "Logging"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Show Log File...", ID_CONTEXT_SHOWLOGFILE
|
MENUITEM "Show Log File...", ID_CONTEXT_SHOWLOGFILE
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Start Logging", ID_CONTEXT_STARTLOG
|
MENUITEM "Start Logging", ID_CONTEXT_STARTLOG
|
||||||
MENUITEM "Stop Logging", ID_CONTEXT_STOPLOG
|
MENUITEM "Stop Logging", ID_CONTEXT_STOPLOG
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Delete Log File...", ID_CONTEXT_DELETELOGFILE
|
MENUITEM "Delete Log File...", ID_CONTEXT_DELETELOGFILE
|
||||||
MENUITEM "Debug Mode", ID_CONTEXT_DEBUGLOG
|
MENUITEM "Debug Mode", ID_CONTEXT_DEBUGLOG
|
||||||
END
|
END
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Exit", ID_CONTEXT_QUIT
|
MENUITEM "Exit", ID_CONTEXT_QUIT
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
IDR_SKIN_MENU MENU DISCARDABLE
|
IDR_SKIN_MENU MENU DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "Skin Menu"
|
POPUP "Skin Menu"
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -61,11 +61,11 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
POPUP "Display Monitor"
|
POPUP "Display Monitor"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Use default: Primary monitor", ID_CONTEXT_SKINMENU_MONITOR_PRIMARY
|
MENUITEM "Use default: Primary monitor", ID_CONTEXT_SKINMENU_MONITOR_PRIMARY
|
||||||
MENUITEM "@0: Virtual screen", ID_MONITOR_FIRST
|
MENUITEM "@0: Virtual screen", ID_MONITOR_FIRST
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Auto-select based on window position", ID_CONTEXT_SKINMENU_MONITOR_AUTOSELECT
|
MENUITEM "Auto-select based on window position", ID_CONTEXT_SKINMENU_MONITOR_AUTOSELECT
|
||||||
END
|
END
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Stay Topmost", ID_CONTEXT_SKINMENU_VERYTOPMOST
|
MENUITEM "Stay Topmost", ID_CONTEXT_SKINMENU_VERYTOPMOST
|
||||||
@ -118,18 +118,18 @@ END
|
|||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
1 TEXTINCLUDE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
"resource.h\0"
|
"resource.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
2 TEXTINCLUDE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include ""afxres.h""\r\n"
|
"#include ""afxres.h""\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
3 TEXTINCLUDE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
@ -143,23 +143,21 @@ END
|
|||||||
// Dialog
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
IDD_ABOUT_DIALOG DIALOG DISCARDABLE 0, 0, 351, 225
|
IDD_ABOUT_DIALOG DIALOGEX DISCARDABLE 0, 0, 370, 240
|
||||||
STYLE DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
STYLE DS_SETFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
|
||||||
|
EXSTYLE WS_EX_APPWINDOW
|
||||||
CAPTION "About Rainmeter"
|
CAPTION "About Rainmeter"
|
||||||
FONT 8, "MS Shell Dlg 2"
|
FONT 8, "MS Shell Dlg 2", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL "List1",IDC_STATISTICS,"SysListView32",LVS_REPORT |
|
CONTROL "List1",IDC_STATISTICS,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,118,80,211,100
|
||||||
LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER |
|
CTEXT "Get the latest version at: http://www.rainmeter.net",IDC_URL_STRING,15,43,300,8
|
||||||
WS_TABSTOP,14,98,309,98
|
|
||||||
CTEXT "Get the latest version at: http://www.rainmeter.net",
|
|
||||||
IDC_URL_STRING,15,43,300,8
|
|
||||||
CTEXT "Rainmeter version 0.0",IDC_VERSION_STRING,15,17,300,8
|
CTEXT "Rainmeter version 0.0",IDC_VERSION_STRING,15,17,300,8
|
||||||
CONTROL "Tab1",IDC_CONFIG_TAB,"SysTabControl32",0x0,7,81,220,120
|
|
||||||
GROUPBOX "About",IDC_STATIC_ABOUT,7,7,220,69
|
GROUPBOX "About",IDC_STATIC_ABOUT,7,7,220,69
|
||||||
CTEXT "(Built on ??? ?? ????)",IDC_BUILD_STRING,15,30,300,8
|
CTEXT "(Built on ??? ?? ????)",IDC_BUILD_STRING,15,30,300,8
|
||||||
DEFPUSHBUTTON "OK",IDOK,91,204,50,14
|
DEFPUSHBUTTON "OK",IDOK,91,204,50,14
|
||||||
CONTROL "Disable check for updates",IDC_DISABLE_VERSION_CHECK,
|
CONTROL "Disable check for updates",IDC_DISABLE_VERSION_CHECK,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,67,56,104,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,67,56,104,10
|
||||||
|
LISTBOX IDC_ABOUT_ENTRIES,7,80,130,100,LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -169,7 +167,7 @@ END
|
|||||||
//
|
//
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
GUIDELINES DESIGNINFO DISCARDABLE
|
GUIDELINES DESIGNINFO DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDD_ABOUT_DIALOG, DIALOG
|
IDD_ABOUT_DIALOG, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -508,6 +508,9 @@ std::wstring ConvertToWide(LPCSTR str)
|
|||||||
|
|
||||||
BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
||||||
{
|
{
|
||||||
|
CRainmeter::LOG_INFO logInfo;
|
||||||
|
logInfo.message = pszMessage;
|
||||||
|
|
||||||
// Add timestamp
|
// Add timestamp
|
||||||
static DWORD startTime = 0;
|
static DWORD startTime = 0;
|
||||||
|
|
||||||
@ -520,6 +523,7 @@ BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
|||||||
swprintf(buffer, L"(%02i:%02i:%02i.%03i) ", (time - startTime) / (1000 * 60* 60), ((time - startTime) / (1000 * 60)) % 60, ((time - startTime) / 1000) % 60, (time - startTime) % 1000);
|
swprintf(buffer, L"(%02i:%02i:%02i.%03i) ", (time - startTime) / (1000 * 60* 60), ((time - startTime) / (1000 * 60)) % 60, ((time - startTime) / 1000) % 60, (time - startTime) % 1000);
|
||||||
|
|
||||||
std::wstring message(buffer);
|
std::wstring message(buffer);
|
||||||
|
logInfo.timestamp = message;
|
||||||
message += pszMessage;
|
message += pszMessage;
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
@ -527,6 +531,23 @@ BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
|||||||
_RPT0(_CRT_WARN, "\n");
|
_RPT0(_CRT_WARN, "\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
switch(nLevel)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
logInfo.type = L"ERROR";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
logInfo.type = L"WARNING";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
logInfo.type = L"NOTICE";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
logInfo.type = L"DEBUG";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Rainmeter->m_LogData.push_front(logInfo);
|
||||||
|
|
||||||
// Use the lsapi.dll version of the method if possible
|
// Use the lsapi.dll version of the method if possible
|
||||||
if (fpLSLog)
|
if (fpLSLog)
|
||||||
{
|
{
|
||||||
@ -568,21 +589,7 @@ BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
|||||||
FILE* logFile = _wfopen(logfile.c_str(), L"a+, ccs=UTF-8");
|
FILE* logFile = _wfopen(logfile.c_str(), L"a+, ccs=UTF-8");
|
||||||
if (logFile)
|
if (logFile)
|
||||||
{
|
{
|
||||||
switch(nLevel)
|
fputws(logInfo.type.c_str(), logFile);
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
fputws(L"ERROR: ", logFile);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
fputws(L"WARNING: ", logFile);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
fputws(L"NOTICE: ", logFile);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
fputws(L"DEBUG: ", logFile);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
fputws(message.c_str(), logFile);
|
fputws(message.c_str(), logFile);
|
||||||
fputws(L"\n", logFile);
|
fputws(L"\n", logFile);
|
||||||
fclose(logFile);
|
fclose(logFile);
|
||||||
@ -590,7 +597,10 @@ BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (Rainmeter->m_LogData.size() > MAXABOUTLOGLINES)
|
||||||
|
{
|
||||||
|
Rainmeter->m_LogData.pop_back();
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#define LM_GETREVID 9265
|
#define LM_GETREVID 9265
|
||||||
#define LM_REGISTERMESSAGE 9263
|
#define LM_REGISTERMESSAGE 9263
|
||||||
#define LM_UNREGISTERMESSAGE 9264
|
#define LM_UNREGISTERMESSAGE 9264
|
||||||
|
#define MAXABOUTLOGLINES 20
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define DEBUGLOG DebugLog
|
#define DEBUGLOG DebugLog
|
||||||
|
@ -136,6 +136,13 @@ public:
|
|||||||
std::vector<CONFIGMENU> children;
|
std::vector<CONFIGMENU> children;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct LOG_INFO
|
||||||
|
{
|
||||||
|
std::wstring type;
|
||||||
|
std::wstring timestamp;
|
||||||
|
std::wstring message;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
CRainmeter();
|
CRainmeter();
|
||||||
~CRainmeter();
|
~CRainmeter();
|
||||||
@ -196,6 +203,7 @@ public:
|
|||||||
void StartLogging();
|
void StartLogging();
|
||||||
void StopLogging();
|
void StopLogging();
|
||||||
void DeleteLogFile();
|
void DeleteLogFile();
|
||||||
|
std::list<LOG_INFO> m_LogData;
|
||||||
|
|
||||||
void SetDebug(bool debug);
|
void SetDebug(bool debug);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Developer Studio generated include file.
|
// Microsoft Visual C++ generated include file.
|
||||||
// Used by Library.rc
|
// Used by Library.rc
|
||||||
//
|
//
|
||||||
#define IDR_CONTEXT_MENU 101
|
#define IDR_CONTEXT_MENU 101
|
||||||
@ -13,9 +13,9 @@
|
|||||||
#define IDC_STATISTICS_STRING 1003
|
#define IDC_STATISTICS_STRING 1003
|
||||||
#define IDC_STATIC_ABOUT 1004
|
#define IDC_STATIC_ABOUT 1004
|
||||||
#define IDC_URL_STRING 1005
|
#define IDC_URL_STRING 1005
|
||||||
#define IDC_CONFIG_TAB 1006
|
#define IDC_ABOUT_ENTRIES 1006
|
||||||
#define IDC_AUTHOR_STRING 1007
|
#define IDC_AUTHOR_STRING 1007
|
||||||
#define IDC_DISABLE_VERSION_CHECK 1008
|
#define IDC_DISABLE_VERSION_CHECK 1008
|
||||||
#define ID_CONTEXT_REFRESH 4001
|
#define ID_CONTEXT_REFRESH 4001
|
||||||
#define ID_CONTEXT_QUIT 4002
|
#define ID_CONTEXT_QUIT 4002
|
||||||
#define ID_CONTEXT_ABOUT 4004
|
#define ID_CONTEXT_ABOUT 4004
|
||||||
@ -49,29 +49,28 @@
|
|||||||
#define ID_CONTEXT_SKINMENU_TRANSPARENCY_FADEIN 4037
|
#define ID_CONTEXT_SKINMENU_TRANSPARENCY_FADEIN 4037
|
||||||
#define ID_CONTEXT_SKINMENU_TRANSPARENCY_FADEOUT 4038
|
#define ID_CONTEXT_SKINMENU_TRANSPARENCY_FADEOUT 4038
|
||||||
#define ID_CONTEXT_SKINMENU_KEEPONSCREEN 4039
|
#define ID_CONTEXT_SKINMENU_KEEPONSCREEN 4039
|
||||||
#define ID_CONTEXT_SKINMENU_FROMRIGHT 4040
|
#define ID_CONTEXT_SKINMENU_FROMRIGHT 4040
|
||||||
#define ID_CONTEXT_SKINMENU_FROMBOTTOM 4041
|
#define ID_CONTEXT_SKINMENU_FROMBOTTOM 4041
|
||||||
#define ID_CONTEXT_SKINMENU_XPERCENTAGE 4042
|
#define ID_CONTEXT_SKINMENU_XPERCENTAGE 4042
|
||||||
#define ID_CONTEXT_SKINMENU_YPERCENTAGE 4043
|
#define ID_CONTEXT_SKINMENU_YPERCENTAGE 4043
|
||||||
#define ID_CONTEXT_OPENSKINSFOLDER 4044
|
#define ID_CONTEXT_OPENSKINSFOLDER 4044
|
||||||
#define ID_CONTEXT_SKINMENU_OPENSKINSFOLDER 4045
|
#define ID_CONTEXT_SKINMENU_OPENSKINSFOLDER 4045
|
||||||
#define ID_CONTEXT_MANAGETHEMES 4046
|
#define ID_CONTEXT_MANAGETHEMES 4046
|
||||||
#define ID_CONTEXT_MANAGESKINS 4047
|
#define ID_CONTEXT_MANAGESKINS 4047
|
||||||
#define ID_CONTEXT_SKINMENU_MONITOR_PRIMARY 4048
|
#define ID_CONTEXT_SKINMENU_MONITOR_PRIMARY 4048
|
||||||
#define ID_CONTEXT_SKINMENU_MONITOR_AUTOSELECT 4049
|
#define ID_CONTEXT_SKINMENU_MONITOR_AUTOSELECT 4049
|
||||||
#define ID_CONTEXT_NEW_VERSION 4050
|
#define ID_CONTEXT_NEW_VERSION 4050
|
||||||
#define ID_CONTEXT_STARTLOG 4051
|
#define ID_CONTEXT_STARTLOG 4051
|
||||||
#define ID_CONTEXT_STOPLOG 4052
|
#define ID_CONTEXT_STOPLOG 4052
|
||||||
#define ID_CONTEXT_DEBUGLOG 4053
|
#define ID_CONTEXT_DEBUGLOG 4053
|
||||||
#define ID_CONTEXT_DELETELOGFILE 4054
|
#define ID_CONTEXT_DELETELOGFILE 4054
|
||||||
|
|
||||||
#define ID_CONFIG_EDIT 30000
|
#define ID_CONFIG_EDIT 30000
|
||||||
#define ID_CONFIG_FIRST 30001
|
#define ID_CONFIG_FIRST 30001
|
||||||
#define ID_CONFIG_LAST 33000
|
#define ID_CONFIG_LAST 33000
|
||||||
#define ID_THEME_FIRST 33001
|
#define ID_THEME_FIRST 33001
|
||||||
#define ID_THEME_LAST 36000
|
#define ID_THEME_LAST 36000
|
||||||
#define ID_MONITOR_FIRST 36001
|
#define ID_MONITOR_FIRST 36001
|
||||||
#define ID_MONITOR_LAST 37000
|
#define ID_MONITOR_LAST 37000
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
@ -79,7 +78,7 @@
|
|||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 110
|
#define _APS_NEXT_RESOURCE_VALUE 110
|
||||||
#define _APS_NEXT_COMMAND_VALUE 4040
|
#define _APS_NEXT_COMMAND_VALUE 4040
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1010
|
#define _APS_NEXT_CONTROL_VALUE 1013
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
const int revision_number = 515;
|
const int revision_number = 520;
|
||||||
const bool revision_beta = true;
|
const bool revision_beta = true;
|
Loading…
x
Reference in New Issue
Block a user