diff --git a/Battery/Battery.cpp b/Battery/Battery.cpp index 5fcedcb7..1a95cd3e 100644 --- a/Battery/Battery.cpp +++ b/Battery/Battery.cpp @@ -102,6 +102,9 @@ void CBattery::OnExtenedInfo(ExtendedInfoIndex index, const wchar_t* data) //从配置文件读取配置 g_data.LoadConfig(std::wstring(data)); + break; + case ITMPlugin::EI_TASKBAR_WND_SPERATE_WITH_SPACE: + g_data.m_setting_data.show_space = _wtoi(data); break; default: break; diff --git a/Battery/Battery.rc b/Battery/Battery.rc index 85fb0803..524791ee 100644 --- a/Battery/Battery.rc +++ b/Battery/Battery.rc @@ -180,12 +180,104 @@ BEGIN IDS_HOUR "Сʱ" IDS_MINUTE "" IDS_SECOND "" + IDS_NA "N/A" END #endif // (壬й) resources ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 202, 87 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,87,66,50,14 + PUSHBUTTON "",IDCANCEL,145,66,50,14 + LTEXT " :",IDC_STATIC,7,9,72,8 + COMBOBOX IDC_COMBO1,82,7,113,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL " ",IDC_SHOW_TOOLTIPS_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,23,181,10 + CONTROL " ",IDC_SHOW_PERCENT_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,73,10 + CONTROL " ",IDC_SHOW_CHARGING_ANIMATION_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,47,75,10 + CONTROL "",IDC_HELP_SYSLINK,"SysLink",WS_TABSTOP,7,70,34,10 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 195 + TOPMARGIN, 7 + BOTTOMMARGIN, 80 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PLUGIN_NAME " " + IDS_PLUGIN_DESCRIPTION " TrafficMonitor" + IDS_BATTERY "" + IDS_BATTYER_TYPE_NUMBER " " + IDS_BATTYER_TYPE_ICON " " + IDS_BATTYER_TYPE_NUMBER_IN_ICON " " + IDS_BATTYER_TYPE_NUMBER_BESIDE_ICON " " + IDS_CHARGING " " + IDS_BATTERY_LIFE_TIME " " +END + +STRINGTABLE +BEGIN + IDS_BATTERY_FULL_LIFE_TIME " " + IDS_HOUR "" + IDS_MINUTE "" + IDS_SECOND "" + IDS_NA "/" +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources @@ -270,6 +362,7 @@ BEGIN IDS_HOUR "hour" IDS_MINUTE "minute" IDS_SECOND "second" + IDS_NA "N/A" END #endif // Ӣ() resources diff --git a/Battery/BatteryItem.cpp b/Battery/BatteryItem.cpp index e86190aa..fbea875b 100644 --- a/Battery/BatteryItem.cpp +++ b/Battery/BatteryItem.cpp @@ -42,7 +42,12 @@ const wchar_t* CBatteryItem::GetItemValueText() const const wchar_t* CBatteryItem::GetItemValueSampleText() const { if (g_data.m_setting_data.show_percent) - return L"100%"; + { + if (g_data.m_setting_data.show_space) + return L"100 %"; + else + return L"100%"; + } else return L"100"; } @@ -63,7 +68,12 @@ int CBatteryItem::GetItemWidthEx(void * hDC) const CString sample_str; if (g_data.m_setting_data.show_percent) - sample_str = _T("100%"); + { + if (g_data.m_setting_data.show_space) + sample_str = _T("100 %"); + else + sample_str = _T("100%"); + } else sample_str = _T("100"); @@ -93,14 +103,14 @@ void CBatteryItem::DrawItem(void* hDC, int x, int y, int w, int h, bool dark_mod icon_point.y = rect.top + (rect.Height() - icon_size) / 2; ::DrawIconEx(pDC->GetSafeHdc(), icon_point.x, icon_point.y, hIcon, icon_size, icon_size, 0, NULL, DI_NORMAL); //填充电量指示 - if (g_data.m_sysPowerStatus.BatteryFlag != 128 && g_data.m_sysPowerStatus.BatteryLifePercent > 0 && g_data.m_sysPowerStatus.BatteryLifePercent <= 100) + if (!(g_data.m_sysPowerStatus.BatteryFlag & BATTERY_FLAG_NO_BATTERY) && g_data.m_sysPowerStatus.BatteryLifePercent != BATTERY_PERCENTAGE_UNKNOWN) { Gdiplus::RectF rc_indicater; rc_indicater.X = icon_point.x + g_data.DPIF(1); rc_indicater.Y = icon_point.y + g_data.DPIF(6); double percent = g_data.m_sysPowerStatus.BatteryLifePercent; //显示充电动画 - if (g_data.m_setting_data.show_charging_animation && g_data.IsAcOnline() && g_data.m_sysPowerStatus.BatteryLifePercent < 100) + if (g_data.m_setting_data.show_charging_animation && g_data.IsCharging()) { percent = g_data.m_sysPowerStatus.BatteryLifePercent + (battery_percent / 100 * (100 - g_data.m_sysPowerStatus.BatteryLifePercent)); } diff --git a/Battery/DataManager.cpp b/Battery/DataManager.cpp index 8403f493..82e3277a 100644 --- a/Battery/DataManager.cpp +++ b/Battery/DataManager.cpp @@ -126,26 +126,26 @@ HICON CDataManager::GetIcon(UINT id) bool CDataManager::IsAcOnline() const { - return m_sysPowerStatus.ACLineStatus == 1; + return m_sysPowerStatus.ACLineStatus == AC_LINE_ONLINE; } bool CDataManager::IsCharging() const { - return m_sysPowerStatus.BatteryFlag == 8; + return m_sysPowerStatus.BatteryFlag & BATTERY_FLAG_CHARGING; } std::wstring CDataManager::GetBatteryString() const { - if (m_sysPowerStatus.BatteryFlag == 128) + if (m_sysPowerStatus.BatteryFlag & BATTERY_FLAG_NO_BATTERY) { - return L"N/A"; + return g_data.StringRes(IDS_NA).GetString(); } else { std::wstring str = std::to_wstring(m_sysPowerStatus.BatteryLifePercent); if (m_setting_data.show_percent) { - if (m_sysPowerStatus.BatteryLifePercent < 100) + if (g_data.m_setting_data.show_space) str.push_back(L' '); str.push_back(L'%'); } @@ -155,10 +155,9 @@ std::wstring CDataManager::GetBatteryString() const COLORREF CDataManager::GetBatteryColor() const { - if (m_sysPowerStatus.BatteryLifePercent < 20) + if (m_sysPowerStatus.BatteryFlag & BATTERY_FLAG_CRITICAL) return BATTERY_COLOR_CRITICAL; - else if (m_sysPowerStatus.BatteryLifePercent < 60) + if (m_sysPowerStatus.BatteryFlag & BATTERY_FLAG_LOW) return BATTERY_COLOR_LOW; - else - return BATTERY_COLOR_HIGH; + return BATTERY_COLOR_HIGH; } diff --git a/Battery/DataManager.h b/Battery/DataManager.h index 21f09ef0..4aa6a3c2 100644 --- a/Battery/DataManager.h +++ b/Battery/DataManager.h @@ -23,6 +23,7 @@ struct SettingData bool show_battery_in_tooltip{}; bool show_percent{}; bool show_charging_animation{}; //显示充电动画 + bool show_space{}; }; class CDataManager diff --git a/Battery/resource.h b/Battery/resource.h index 1124824e..05bae24c 100644 --- a/Battery/resource.h +++ b/Battery/resource.h @@ -18,6 +18,7 @@ #define IDS_HOUR 113 #define IDS_MINUTE 114 #define IDS_SECOND 115 +#define IDS_NA 116 #define IDC_COMBO1 1000 #define IDC_SHOW_PERCENT_CHECK 1002 #define IDC_SHOW_CHARGING_ANIMATION_CHECK 1003 diff --git a/DateTime/DateTime.rc b/DateTime/DateTime.rc index 9b5f8953..095d45b2 100644 --- a/DateTime/DateTime.rc +++ b/DateTime/DateTime.rc @@ -224,7 +224,7 @@ END STRINGTABLE BEGIN IDS_JUL "7" - IDS_AUT "8" + IDS_AUG "8" IDS_SEP "9" IDS_OCT "10" IDS_NOV "11" @@ -253,6 +253,174 @@ END ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MESSAGE_DIALOG DIALOGEX 0, 0, 183, 128 +STYLE DS_SETFONT | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "Dialog" +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + PUSHBUTTON "",IDCANCEL,128,109,50,14 + EDITTEXT IDC_EDIT1,4,4,174,101,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL +END + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 175, 131 +STYLE DS_SETFONT | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION " " +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,63,110,50,14 + PUSHBUTTON "",IDCANCEL,118,110,50,14 + GROUPBOX " ",IDC_STATIC,7,7,161,45 + EDITTEXT IDC_TIME_FORMAT_EDIT,14,22,147,12,ES_AUTOHSCROLL + LTEXT ":",IDC_STATIC,14,38,50,8 + LTEXT "",IDC_TIME_PREVIEW_STATIC,67,38,94,8,SS_ENDELLIPSIS + GROUPBOX " ",IDC_STATIC,7,57,161,45 + EDITTEXT IDC_DATE_FORMAT_EDIT,14,72,147,12,ES_AUTOHSCROLL + LTEXT ":",IDC_STATIC,14,88,50,8 + LTEXT "",IDC_DATE_PREVIEW_STATIC,67,88,94,8,SS_ENDELLIPSIS + PUSHBUTTON "&",IDC_HELP_BUTTON,7,110,50,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MESSAGE_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 4 + RIGHTMARGIN, 178 + TOPMARGIN, 4 + BOTTOMMARGIN, 123 + END + + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 168 + VERTGUIDE, 14 + VERTGUIDE, 161 + TOPMARGIN, 7 + BOTTOMMARGIN, 124 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_MESSAGE_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 0, 0, 100, 100 +END + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 100, 100, 0, 0, + 0, 0, 100, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 100, 0, + 0, 0, 100, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 100, 0, + 0, 100, 0, 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PLUGIN_NAME " " + IDS_PLUGIN_DESCRIPTION " TrafficMonitor" + IDS_TIME "" + IDS_DATE "" + IDS_CUSTOM_DRAW_ITEM " " + IDS_MON "" + IDS_TUE "" + IDS_WED "" + IDS_THU "" +END + +STRINGTABLE +BEGIN + IDS_FRI "" + IDS_SAT "" + IDS_SUN "" + IDS_MONDAY "" + IDS_TUESDAY "" + IDS_WEDNESDAY "" + IDS_THURSDAY "" + IDS_FRIDAY "" + IDS_SATURDAY "" + IDS_SUNDAY "" + IDS_JAN "" + IDS_FEB "" + IDS_MAR "" + IDS_ARI "" + IDS_MAY "" + IDS_JUN "" +END + +STRINGTABLE +BEGIN + IDS_JUL "" + IDS_AUG "" + IDS_SEP "" + IDS_OCT "" + IDS_NOV "" + IDS_DEC "" + IDS_JANUARY "" + IDS_FEBRUARY "" + IDS_MARCH "" + IDS_APRIL "" + IDS_MAY_ "" + IDS_JUNE "" + IDS_JULY "" + IDS_AUGUST "" + IDS_SEPTEMBER "" + IDS_OCTOBER "" +END + +STRINGTABLE +BEGIN + IDS_NOVEMBER "" + IDS_DECEMBER "" + IDS_FORMAT_HELP " :\r\nd: (1 31).\r\ndd: (01 31).\r\nddd: , ('', .., '').\r\ndddd: , ('', .., '').\r\nM: (1-12).\r\nMM: (01-12).\r\nMMM: , ('', .., '').\r\nMMMM: , ('', .., '').\r\nyy: (00-99).\r\nyyyy: .\r\n\r\n :\r\nh: (1 12)\r\nhh: (01 12)\r\nH: (0 23)\r\nHH: (00 23)\r\nm: (0 59)\r\nmm: (00 59)\r\ns: (0 59)\r\nss: (00 59)\r\nAP: 12- . AP ""AM"" ""PM"".\r\nap: 12- . ap ""am"" ""pm"".\r\n" + IDS_HELP "" +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources @@ -390,7 +558,7 @@ END STRINGTABLE BEGIN IDS_JUL "Jul" - IDS_AUT "Aut" + IDS_AUG "Aug" IDS_SEP "Sep" IDS_OCT "Oct" IDS_NOV "Nov" diff --git a/DateTime/DateTimeFormatHelper.cpp b/DateTime/DateTimeFormatHelper.cpp index e4b08cb4..ed59379c 100644 --- a/DateTime/DateTimeFormatHelper.cpp +++ b/DateTime/DateTimeFormatHelper.cpp @@ -185,7 +185,7 @@ CString CDataTimeFormatHelper::GetMonthStringShort(DWORD month) case 5: return g_data.StringRes(IDS_MAY); case 6: return g_data.StringRes(IDS_JUN); case 7: return g_data.StringRes(IDS_JUL); - case 8: return g_data.StringRes(IDS_AUT); + case 8: return g_data.StringRes(IDS_AUG); case 9: return g_data.StringRes(IDS_SEP); case 10: return g_data.StringRes(IDS_OCT); case 11: return g_data.StringRes(IDS_NOV); diff --git a/DateTime/resource.h b/DateTime/resource.h index 75c10376..01fcf1bd 100644 --- a/DateTime/resource.h +++ b/DateTime/resource.h @@ -32,7 +32,7 @@ #define IDS_MAY 126 #define IDS_JUN 127 #define IDS_JUL 128 -#define IDS_AUT 129 +#define IDS_AUG 129 #define IDS_SEP 130 #define IDS_OCT 131 #define IDS_NOV 132 diff --git a/GP/DataManager.cpp b/GP/DataManager.cpp index 9b457248..1c826d81 100644 --- a/GP/DataManager.cpp +++ b/GP/DataManager.cpp @@ -117,11 +117,11 @@ HICON CDataManager::GetIcon(UINT id) } } -std::wstring GupiaoInfo::ToString() const +CString GupiaoInfo::ToString() const { - std::wstringstream wss; - wss << p << ' ' << pc; - return wss.str(); + if (g_data.m_setting_data.show_space) + return p + L" ¥ " + pc + L" %"; + return p + L"¥ " + pc + L"%"; } GupiaoInfo& CDataManager::GetGPInfo(CString key) diff --git a/GP/DataManager.h b/GP/DataManager.h index 419a73ae..b7052efc 100644 --- a/GP/DataManager.h +++ b/GP/DataManager.h @@ -11,6 +11,7 @@ struct SettingData CString m_all_gp_code_str{}; vector m_gp_codes; // 代码 bool m_full_day{}; // 全天更新 + bool show_space{}; void setupByCodeStr(CString codeStr); void updateAllCodeStr(); @@ -19,10 +20,10 @@ struct SettingData // GP显示数据 struct GupiaoInfo { - std::wstring pc = L"--%"; - std::wstring p = L"--"; - std::wstring name = L""; - std::wstring ToString() const; + CString pc = L"--"; + CString p = L"--"; + CString name = L""; + CString ToString() const; }; class CDataManager diff --git a/GP/GP.cpp b/GP/GP.cpp index c9aa0914..1edb2019 100644 --- a/GP/GP.cpp +++ b/GP/GP.cpp @@ -46,11 +46,17 @@ UINT GP::ThreadCallback(LPVOID dwUser) m_instance.m_last_request_time = cur_time; if (g_data.m_setting_data.m_full_day != 1) { - SYSTEMTIME now_time; - GetLocalTime(&now_time); - //CCommon::WriteLog(now_time.wHour, g_data.m_log_path.c_str()); - //CCommon::WriteLog(now_time.wMinute, g_data.m_log_path.c_str()); - if (now_time.wHour < 9 || now_time.wHour > 15 || (now_time.wHour == 15 && now_time.wMinute > 30)) { + TIME_ZONE_INFORMATION tz_china{}; + tz_china.Bias = -8 * 60; // China Standard Time UTC+08:00 + + SYSTEMTIME utc_time{}, china_time{}; + GetSystemTime(&utc_time); + SystemTimeToTzSpecificLocalTime(&tz_china, &utc_time, &china_time); + //CString log_time; + //log_time.Format(_T("UTC: %d:%02d, China: %d:%02d"), utc_time.wHour, utc_time.wMinute, china_time.wHour, china_time.wMinute); + //CCommon::WriteLog(log_time, g_data.m_log_path.c_str()); + + if (china_time.wHour < 9 || (china_time.wHour == 15 && china_time.wMinute > 30) || china_time.wHour > 15) { // 9:00-15:30 CCommon::WriteLog(L"Not currently in trading time!", g_data.m_log_path.c_str()); g_data.ResetText(); return 0; @@ -164,12 +170,8 @@ void GP::ParseJsonData(std::string json_data) yesterday = { convert(data_arr[2]) }; } - char buff[32]; - sprintf_s(buff, "%.2f", now); - gpInfo.p = CCommon::StrToUnicode(buff); - - sprintf_s(buff, "%.2f%%", ((now - yesterday) / yesterday * 100)); - gpInfo.pc = CCommon::StrToUnicode(buff); + gpInfo.p.Format(_T("%.2f"), now); + gpInfo.pc.Format(_T("%.2f"), ((now - yesterday) / yesterday * 100)); gpInfo.name = name; } @@ -207,7 +209,7 @@ void GP::DataRequired() time_t cur_time = time(nullptr); if (cur_time - m_instance.m_last_request_time > 3) { last_req_time = cur_time; - SendGPInfoQequest(); + SendGPInfoRequest(); } } @@ -257,6 +259,9 @@ void GP::OnExtenedInfo(ExtendedInfoIndex index, const wchar_t* data) g_data.LoadConfig(std::wstring(data)); updateItems(); break; + case ITMPlugin::EI_TASKBAR_WND_SPERATE_WITH_SPACE: + g_data.m_setting_data.show_space = _wtoi(data); + break; default: break; } @@ -280,7 +285,7 @@ void GP::updateItems() } } -void GP::SendGPInfoQequest() +void GP::SendGPInfoRequest() { if (!m_is_thread_runing) //确保线程已退出 AfxBeginThread(ThreadCallback, nullptr); @@ -312,7 +317,7 @@ void GP::ShowContextMenu(CWnd* pWnd) //点击了“更新” else if (id == ID_UPDATE) { - SendGPInfoQequest(); + SendGPInfoRequest(); } } } diff --git a/GP/GP.h b/GP/GP.h index bd81cd8d..869a9b4d 100644 --- a/GP/GP.h +++ b/GP/GP.h @@ -31,7 +31,7 @@ class GP : public ITMPlugin virtual OptionReturn ShowOptionsDialog(void* hParent) override; virtual const wchar_t* GetInfo(PluginInfoIndex index) override; virtual void OnExtenedInfo(ExtendedInfoIndex index, const wchar_t* data) override; - void SendGPInfoQequest(); + void SendGPInfoRequest(); void ShowContextMenu(CWnd* pWnd); void DisableUpdateCommand(); void EnableUpdateCommand(); diff --git a/GP/GP.rc b/GP/GP.rc index 5a760bac..258f8795 100644 --- a/GP/GP.rc +++ b/GP/GP.rc @@ -209,12 +209,148 @@ BEGIN IDS_PLUGIN_NAME "Ʊ" IDS_PLUGIN_DESCRIPTION "TrafficMonitorĹƱ" IDS_PLUGIN_ITEM_NAME "GP" + IDS_PLUGIN_INFO_DYNAMIC_CREATE "TrafficMonitor޷̬ItemѴﵽ趨" + IDS_PLUGIN_INFO_RESTART "δˢTrafficMonitor" END #endif // (壬й) resources ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MANAGER_DIALOG DIALOGEX 0, 0, 142, 145 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION " " +FONT 9, "Segoe UI", 400, 0, 0xCC +BEGIN + DEFPUSHBUTTON "",IDOK,31,126,50,12 + PUSHBUTTON "",IDCANCEL,85,126,50,12 + LISTBOX IDC_MGR_LIST,7,7,128,82,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "",IDC_MGR_ADD_BTN,21,93,50,12 + PUSHBUTTON "",IDC_MGR_DEL_BTN,75,93,50,12 + CONTROL " ",IDC_FULL_DAY_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,107,113,10 +END + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 138, 138 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 9, "Segoe UI", 400, 0, 0xCC +BEGIN + DEFPUSHBUTTON "",IDOK,24,119,50,12 + PUSHBUTTON "",IDCANCEL,81,119,50,12 + LTEXT ":",IDC_CODE_LABEL,7,8,21,8 + EDITTEXT IDC_CODE_EDIT,31,7,100,12,ES_AUTOHSCROLL + GROUPBOX " ",IDC_STATIC,7,22,124,88 + CONTROL "",IDC_RADIO_SZ,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,33,53,10 + CONTROL "",IDC_RADIO_HK,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,45,42,10 + CONTROL "",IDC_RADIO_BJ,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,57,36,10 + CONTROL "",IDC_RADIO_SH,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,69,41,10 + CONTROL " ",IDC_RADIO_GB,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,81,53,10 + CONTROL " ( )",IDC_RADIO_OTHER,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,93,99,10 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MANAGER_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 135 + TOPMARGIN, 7 + BOTTOMMARGIN, 138 + END + + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 131 + VERTGUIDE, 14 + VERTGUIDE, 24 + TOPMARGIN, 7 + BOTTOMMARGIN, 131 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_MANAGER_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 100, 100, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MENU1 MENU +BEGIN + POPUP "1" + BEGIN + MENUITEM "& ...", ID_OPTIONS + MENUITEM "& ", ID_UPDATE + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PLUGIN_NAME " " + IDS_PLUGIN_DESCRIPTION " TrafficMonitor" + IDS_PLUGIN_ITEM_NAME " " + IDS_PLUGIN_INFO_DYNAMIC_CREATE + "TrafficMonitor .\n " + IDS_PLUGIN_INFO_RESTART " ,\n TrafficMonitor" +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources @@ -232,6 +368,9 @@ BEGIN IDS_PLUGIN_NAME "Stock Plugin" IDS_PLUGIN_DESCRIPTION "Stock plugin for TrafficMonitor." IDS_PLUGIN_ITEM_NAME "Stock" + IDS_PLUGIN_INFO_DYNAMIC_CREATE + "Since TrafficMonitor cannot dynamically create items, the set limit has been reached" + IDS_PLUGIN_INFO_RESTART "If the interface is not refreshed, please restart TrafficMonitor" END #endif // Ӣ() resources diff --git a/GP/GPItem.cpp b/GP/GPItem.cpp index 795ad11b..dffc7e45 100644 --- a/GP/GPItem.cpp +++ b/GP/GPItem.cpp @@ -53,7 +53,10 @@ int GPItem::GetItemWidthEx(void * hDC) const { //绘图句柄 CDC* pDC = CDC::FromHandle((HDC)hDC); - return pDC->GetTextExtent(L"000000000000").cx; + if (g_data.GetGPInfo(gp_id).p != L"--") + return pDC->GetTextExtent(g_data.GetGPInfo(gp_id).ToString()).cx; + else + return pDC->GetTextExtent(L"999.99¥ 99.99%").cx; } return 0; } diff --git a/GP/ManagerDialog.cpp b/GP/ManagerDialog.cpp index 6f71bcc3..fe7692c6 100644 --- a/GP/ManagerDialog.cpp +++ b/GP/ManagerDialog.cpp @@ -92,7 +92,7 @@ void CManagerDialog::OnAddBtnClick() { if (m_data.m_gp_codes.size() >= GP_ITEM_MAX) { - MessageBox(TEXT("由于TrafficMonitor无法动态创建Item,已达到设定上限"), TEXT(""), MB_ICONWARNING | MB_OK); + MessageBox(g_data.StringRes(IDS_PLUGIN_INFO_DYNAMIC_CREATE), TEXT(""), MB_ICONWARNING | MB_OK); return; } COptionsDlg dlg; @@ -127,8 +127,8 @@ void CManagerDialog::OnBnClickedOk() { g_data.m_setting_data = m_data; g_data.SaveConfig(); - GP::Instance().SendGPInfoQequest(); - MessageBox(TEXT("如果界面未刷新请重启TrafficMonitor"), TEXT(""), MB_ICONWARNING | MB_OK); + GP::Instance().SendGPInfoRequest(); + MessageBox(g_data.StringRes(IDS_PLUGIN_INFO_RESTART), TEXT(""), MB_ICONWARNING | MB_OK); } CDialog::OnOK(); } diff --git a/GP/resource.h b/GP/resource.h index 95166fba..6fed4640 100644 --- a/GP/resource.h +++ b/GP/resource.h @@ -7,6 +7,8 @@ #define IDS_PLUGIN_DESCRIPTION 104 #define IDR_MENU1 104 #define IDS_PLUGIN_ITEM_NAME 105 +#define IDS_PLUGIN_INFO_DYNAMIC_CREATE 106 +#define IDS_PLUGIN_INFO_RESTART 107 #define IDD_MANAGER_DIALOG 108 #define IDC_CODE_EDIT 1003 #define IDC_UPDATE_BUTTON 1004 diff --git a/PluginTemplate/PluginTemplate.rc b/PluginTemplate/PluginTemplate.rc index 7e8538af..6c11ea59 100644 --- a/PluginTemplate/PluginTemplate.rc +++ b/PluginTemplate/PluginTemplate.rc @@ -156,6 +156,74 @@ END ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 194, 135 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "" +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,80,114,50,14 + PUSHBUTTON "",IDCANCEL,137,114,50,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 187 + TOPMARGIN, 7 + BOTTOMMARGIN, 128 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PLUGIN_NAME "" + IDS_PLUGIN_DESCRIPTION "" + IDS_PLUGIN_ITEM_NAME "" +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources diff --git a/PluginTester/CommonData.h b/PluginTester/CommonData.h index f308b8e3..80afd276 100644 --- a/PluginTester/CommonData.h +++ b/PluginTester/CommonData.h @@ -25,5 +25,6 @@ enum class Language { FOLLOWING_SYSTEM, //ϵͳ ENGLISH, //Ӣ - SIMPLIFIED_CHINESE // + SIMPLIFIED_CHINESE, // + RUSSIAN }; diff --git a/PluginTester/PluginTester.cpp b/PluginTester/PluginTester.cpp index c01f93e2..f9ff17c8 100644 --- a/PluginTester/PluginTester.cpp +++ b/PluginTester/PluginTester.cpp @@ -92,6 +92,9 @@ BOOL CPluginTesterApp::InitInstance() case Language::SIMPLIFIED_CHINESE: SetThreadUILanguage(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)); break; + case Language::RUSSIAN: + SetThreadUILanguage(MAKELANGID(LANG_RUSSIAN, SUBLANG_RUSSIAN_RUSSIA)); + break; default: break; } diff --git a/PluginTester/PluginTester.rc b/PluginTester/PluginTester.rc index 2150c064..69e69b17 100644 Binary files a/PluginTester/PluginTester.rc and b/PluginTester/PluginTester.rc differ diff --git a/PluginTester/PluginTesterDlg.cpp b/PluginTester/PluginTesterDlg.cpp index 5e742d83..88fb57c2 100644 --- a/PluginTester/PluginTesterDlg.cpp +++ b/PluginTester/PluginTesterDlg.cpp @@ -190,6 +190,7 @@ BEGIN_MESSAGE_MAP(CPluginTesterDlg, CDialog) ON_BN_CLICKED(IDC_SPECIFY_WIDTH_CHECK, &CPluginTesterDlg::OnBnClickedSpecifyWidthCheck) ON_COMMAND(ID_LANGUAGE_CHINESE, &CPluginTesterDlg::OnLanguageChinese) ON_COMMAND(ID_LANGUAGE_ENGLISH, &CPluginTesterDlg::OnLanguageEnglish) + ON_COMMAND(ID_LANGUAGE_RUSSIAN, &CPluginTesterDlg::OnLanguageRussian) ON_COMMAND(ID_LANGUAGE_FOLLOWING_SYSTEM, &CPluginTesterDlg::OnLanguageFollowingSystem) ON_WM_INITMENU() ON_BN_CLICKED(IDC_PLUGIN_COMMANDS_BUTTON, &CPluginTesterDlg::OnBnClickedPluginCommandsButton) @@ -680,6 +681,17 @@ void CPluginTesterDlg::OnLanguageEnglish() } +void CPluginTesterDlg::OnLanguageRussian() +{ + if (theApp.m_language != Language::RUSSIAN) + { + theApp.m_language = Language::RUSSIAN; + SaveConfig(); + MessageBox(theApp.LoadText(IDS_LANGUAGE_CHANGE), NULL, MB_ICONINFORMATION); + } +} + + void CPluginTesterDlg::OnLanguageFollowingSystem() { if (theApp.m_language != Language::FOLLOWING_SYSTEM) @@ -699,6 +711,7 @@ void CPluginTesterDlg::OnInitMenu(CMenu* pMenu) { case Language::ENGLISH: pMenu->CheckMenuRadioItem(ID_LANGUAGE_FOLLOWING_SYSTEM, ID_LANGUAGE_ENGLISH, ID_LANGUAGE_ENGLISH, MF_BYCOMMAND | MF_CHECKED); break; case Language::SIMPLIFIED_CHINESE: pMenu->CheckMenuRadioItem(ID_LANGUAGE_FOLLOWING_SYSTEM, ID_LANGUAGE_ENGLISH, ID_LANGUAGE_CHINESE, MF_BYCOMMAND | MF_CHECKED); break; + case Language::RUSSIAN: pMenu->CheckMenuRadioItem(ID_LANGUAGE_FOLLOWING_SYSTEM, ID_LANGUAGE_ENGLISH, ID_LANGUAGE_RUSSIAN, MF_BYCOMMAND | MF_CHECKED); break; default: pMenu->CheckMenuRadioItem(ID_LANGUAGE_FOLLOWING_SYSTEM, ID_LANGUAGE_ENGLISH, ID_LANGUAGE_FOLLOWING_SYSTEM, MF_BYCOMMAND | MF_CHECKED); break; } diff --git a/PluginTester/PluginTesterDlg.h b/PluginTester/PluginTesterDlg.h index cff3661d..abd03a40 100644 --- a/PluginTester/PluginTesterDlg.h +++ b/PluginTester/PluginTesterDlg.h @@ -78,6 +78,7 @@ class CPluginTesterDlg : public CDialog afx_msg void OnBnClickedSpecifyWidthCheck(); afx_msg void OnLanguageChinese(); afx_msg void OnLanguageEnglish(); + afx_msg void OnLanguageRussian(); afx_msg void OnLanguageFollowingSystem(); afx_msg void OnInitMenu(CMenu* pMenu); afx_msg void OnBnClickedPluginCommandsButton(); diff --git a/PluginTester/resource.h b/PluginTester/resource.h index 3944fa8b..69415b98 100644 Binary files a/PluginTester/resource.h and b/PluginTester/resource.h differ diff --git a/TextReader/ChapterParser.cpp b/TextReader/ChapterParser.cpp index 65867aaa..07cb9e76 100644 --- a/TextReader/ChapterParser.cpp +++ b/TextReader/ChapterParser.cpp @@ -37,7 +37,7 @@ void CChapterParser::Parse() } } - + if (m_chapter.empty()) { index = -1; @@ -54,7 +54,24 @@ void CChapterParser::Parse() index = index2 + 1; } } + } + if (m_chapter.empty()) + { + index = -1; + while (true) + { + index = m_contents.find(L"Глава", index + 1); + if (index == std::wstring::npos) + break; + size_t index2 = m_contents.find_first_of(L"\r\n", index + 1); + if (index2 - index < 60) + { + std::wstring title = m_contents.substr(index, index2 - index); + m_chapter[index] = title; + index = index2 + 1; + } + } } } diff --git a/TextReader/TextReader.rc b/TextReader/TextReader.rc index a706bb59..6b42960b 100644 --- a/TextReader/TextReader.rc +++ b/TextReader/TextReader.rc @@ -334,6 +334,209 @@ END ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_CHAPTER_DIALOG DIALOGEX 0, 0, 191, 125 +STYLE DS_SETFONT | WS_CHILD | WS_SYSMENU +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + LISTBOX IDC_LIST1,7,7,177,95,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + LTEXT " :",IDC_STATIC,7,106,59,8 + LTEXT "",IDC_CHRRENT_CHAPTER_STATIC,68,106,116,8 +END + +IDD_OPTIONS_CONTAINER_DLG DIALOGEX 0, 0, 284, 182 +STYLE DS_SETFONT | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION " " +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,171,161,50,14 + PUSHBUTTON "",IDCANCEL,227,161,50,14 + CONTROL "",IDC_TAB1,"SysTabControl32",0x0,7,7,270,150 + CONTROL "",IDC_HELP_SYSLINK1,"SysLink",WS_TABSTOP,7,166,30,9 +END + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 266, 151 +STYLE DS_SETFONT | WS_CHILD | WS_SYSMENU +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + LTEXT " :",IDC_STATIC,7,8,43,9 + EDITTEXT IDC_FILE_PATH_EDIT,7,21,198,12,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON "&...",IDC_BROWSE_BUTTON,209,19,50,15 + CONTROL " Base64 ",IDC_AUTO_DECODE_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,38,252,9 + LTEXT ":",IDC_STATIC,7,52,56,9 + EDITTEXT IDC_READ_POSITION_EDIT,61,51,37,12,ES_AUTOHSCROLL + LTEXT ", ",IDC_STATIC,100,52,55,9 + RTEXT "",IDC_TOTAL_CHAR_STATIC,154,52,33,9 + LTEXT ".",IDC_STATIC,191,52,38,9 + LTEXT "",IDC_PERCENT_STATIC,227,53,32,9 + LTEXT " :",IDC_STATIC,7,68,52,9 + EDITTEXT IDC_WINDOW_WIDTH_EDIT,61,67,37,12,ES_AUTOHSCROLL + CONTROL " ",IDC_SHOT_TOOLTIP_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,101,11 + CONTROL " ",IDC_ENABLE_MULTI_LINE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,115,80,117,11 + CONTROL " ",IDC_HIDE_WHEN_LOSE_FOCUS_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,129,10 + CONTROL " ",IDC_AUTO_READ_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,107,111,10 + LTEXT "",IDC_STATIC,124,108,19,8 + EDITTEXT IDC_AUTO_READ_INTERVAL_EDIT,146,106,40,12,ES_AUTOHSCROLL + LTEXT "",IDC_STATIC,190,108,10,8 + CONTROL " ",IDC_USE_OWN_CONTEXT_MENU_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,121,162,9 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_CHAPTER_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 184 + TOPMARGIN, 7 + BOTTOMMARGIN, 118 + END + + IDD_OPTIONS_CONTAINER_DLG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 277 + TOPMARGIN, 7 + BOTTOMMARGIN, 175 + END + + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 259 + TOPMARGIN, 7 + BOTTOMMARGIN, 144 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_CHAPTER_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 0, 0, 100, 100, + 0, 100, 0, 0, + 0, 100, 100, 0 +END + +IDD_OPTIONS_CONTAINER_DLG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 100, 100, 0, 0, + 0, 0, 100, 100, + 0, 100, 0, 0 +END + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 0, 0, 0, 0, + 0, 0, 100, 0, + 100, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MENU1 MENU +BEGIN + POPUP "1" + BEGIN + MENUITEM "&\tUp", 40001 + MENUITEM "&\tDown", ID_NEXT + MENUITEM SEPARATOR + MENUITEM "", ID_START_AUTO_READ + MENUITEM "&\tSpace", ID_HIDE + MENUITEM SEPARATOR + MENUITEM "&...", 40004 + MENUITEM "&...", 40005 + MENUITEM "&...", 40006 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_PLUGIN_NAME " " + IDS_PLUGIN_DESCRIPTION " TrafficMonitor" + IDS_PLUGIN_ITEM_NAME " " + IDS_FILTER " (*.txt)|*.txt| (*.*)|*.*||" + IDS_SETTINGS "" + IDS_CHAPTERS "" + IDS_BOOKMARK "" + IDS_BOOKMARK_POSITION "" + IDS_BOOKMARK_CONTENTS "" +END + +STRINGTABLE +BEGIN + IDS_CHAPTER "" + IDS_OPEN_FILE " " + IDS_READ_POSITION "" + IDS_MENU_PREVIOUS "&\tUp" + IDS_MENU_NEXT "&\tDown" + IDS_MENU_ADD_BOOKMARK " &" + IDS_MENU_AUTO_PAGE "&" + IDS_MENU_HIDE "&\tSpace" + IDS_MENU_CHAPTER "&..." + IDS_MENU_BOOKMARK "&..." +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources @@ -357,13 +560,13 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,38,252,9 LTEXT "Read position:",IDC_STATIC,7,52,56,9 EDITTEXT IDC_READ_POSITION_EDIT,61,51,37,12,ES_AUTOHSCROLL - LTEXT "charactors, total",IDC_STATIC,100,52,55,9 + LTEXT "characters, total",IDC_STATIC,100,52,55,9 RTEXT "",IDC_TOTAL_CHAR_STATIC,154,52,33,9 - LTEXT "charactors.",IDC_STATIC,191,52,38,9 + LTEXT "characters.",IDC_STATIC,191,52,38,9 LTEXT "",IDC_PERCENT_STATIC,227,53,32,9 LTEXT "Window width:",IDC_STATIC,7,68,52,9 EDITTEXT IDC_WINDOW_WIDTH_EDIT,61,67,37,12,ES_AUTOHSCROLL - CONTROL "Show in tooltops",IDC_SHOT_TOOLTIP_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,101,11 + CONTROL "Show in tooltips",IDC_SHOT_TOOLTIP_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,101,11 CONTROL "Enable multi line display",IDC_ENABLE_MULTI_LINE_CHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,115,80,117,11 CONTROL "Auto hide when lose focus",IDC_HIDE_WHEN_LOSE_FOCUS_CHECK, diff --git a/Weather/Weather.rc b/Weather/Weather.rc index 51390ba2..b3be02f3 100644 --- a/Weather/Weather.rc +++ b/Weather/Weather.rc @@ -298,6 +298,160 @@ END ///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////// +// () resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_OPTIONS_DIALOG DIALOGEX 0, 0, 170, 135 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION " " +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,59,114,50,14 + PUSHBUTTON "",IDCANCEL,113,114,50,14 + LTEXT ":",IDC_STATIC,7,9,25,8 + EDITTEXT IDC_CITY_EDIT,34,7,66,12,ES_AUTOHSCROLL | ES_READONLY + PUSHBUTTON " ...",IDC_SELECT_CITY_BUTTON,104,7,59,13 + LTEXT " :",IDC_STATIC,7,48,71,8 + COMBOBOX IDC_WEATHER_TYPE_COMBO,80,46,83,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL " ",IDC_SHOW_TOOLTIPS_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,80,156,10 + CONTROL " ",IDC_USE_WEATHER_ICON_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,92,156,10 + PUSHBUTTON "& ",IDC_UPDATE_WEATHER_BUTTON,7,62,106,14 + CONTROL " ",IDC_AUTO_LOCATE_CHECK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,22,156,9 + LTEXT "",IDC_AUTO_LOCATE_RESULT_STATIC,7,33,156,10 + CONTROL "",IDC_HELP_SYSLINK,"SysLink",WS_TABSTOP,7,119,26,9 +END + +IDD_SELECT_CITY_DIALOG DIALOGEX 0, 0, 170, 135 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION " " +FONT 9, "Segoe UI", 400, 0, 0x0 +BEGIN + DEFPUSHBUTTON "",IDOK,57,114,50,14 + PUSHBUTTON "",IDCANCEL,113,114,50,14 + CONTROL "",IDC_CITY_LIST,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,22,156,88 + EDITTEXT IDC_SEARCH_EDIT,7,7,156,12,ES_AUTOHSCROLL +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_OPTIONS_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 163 + TOPMARGIN, 7 + BOTTOMMARGIN, 128 + END + + IDD_SELECT_CITY_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 163 + TOPMARGIN, 7 + BOTTOMMARGIN, 128 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +IDD_OPTIONS_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 100, 100, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 +END + +IDD_SELECT_CITY_DIALOG AFX_DIALOG_LAYOUT +BEGIN + 0, + 100, 100, 0, 0, + 100, 100, 0, 0, + 0, 0, 100, 100, + 0, 0, 0, 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_MENU1 MENU +BEGIN + POPUP "1" + BEGIN + MENUITEM "&...", 40001 + MENUITEM "& ", ID_UPDATE_WEATHER + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_WEATHER "" + IDS_PLUGIN_NAME " " + IDS_PLUGIN_DESCRIPTION " TrafficMonitor" + IDS_CITY "" + IDS_CITY_CODE " " + IDS_CLEAR_SEARCH_RESULT " " + IDS_INPUT_KEY_WORD " " + IDS_TODAY_WEATHER "" + IDS_TOMMORROW_WEATHER "" + IDS_UPDATE_TIME " " + IDS_THE_DAY_AFTER_TOMMORROW_WEATHER "" +END + +STRINGTABLE +BEGIN + IDS_CURRENT_WEATHER " " + IDS_CUR_POSITION ": " + IDS_LOCATION_FAILED " !" + IDS_UPDATE_WEATHER " " +END + +#endif // () resources +///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// // Ӣ() resources