From 324d6073c9616790bde2f2a1768603dcfee954b5 Mon Sep 17 00:00:00 2001 From: Jason Millard Date: Mon, 19 Dec 2005 12:00:00 +0600 Subject: [PATCH] 1.4 commit - Added window opacity. --- Defines.h | 16 ++++++--- PreferencesDialog.cpp | 79 +++++++++++++++++++++++++++++++++++++++---- PreferencesDialog.h | 6 ++++ PuTTYCS.clw | 41 +++++++++++----------- PuTTYCS.cpp | 14 ++++++++ PuTTYCS.h | 18 ++++++++++ PuTTYCS.rc | 21 +++++++----- PuTTYCSDialog.cpp | 64 +++++++++++++++++++++++++++++------ PuTTYCSDialog.h | 3 ++ readme.txt | 10 ++++-- resource.h | 5 ++- setup.iss | 17 +++++----- 12 files changed, 235 insertions(+), 59 deletions(-) diff --git a/Defines.h b/Defines.h index 0e2c502..a99a288 100755 --- a/Defines.h +++ b/Defines.h @@ -33,8 +33,9 @@ * Added AltGr support * 11/18/2005: Fixed AltGr support J. Millard * 12/06/2005: Added mouse Copy/Paste emulation J. Millard - * 12/15/2005: Added minimize to systray. J. Millard - * Added tab completion + * 12/15/2005: Added minimize to systray J. Millard + * Added tab completion + * 12/19/2005: Added window opacity J. Millard */ #if !defined(DEFINES_H__INCLUDED_) @@ -44,12 +45,12 @@ #define PUTTYCS_WINDOW_CLASS_PUTTY _T( "PuTTY" ) -#define PUTTYCS_WINDOW_TITLE_TOOL _T( "PuTTYCS 1.3 - PuTTY Command Sender") -#define PUTTYCS_WINDOW_TITLE_APP _T( "PuTTYCS 1.3") +#define PUTTYCS_WINDOW_TITLE_TOOL _T( "PuTTYCS 1.4 - PuTTY Command Sender") +#define PUTTYCS_WINDOW_TITLE_APP _T( "PuTTYCS 1.4") #define PUTTYCS_WINDOW_TITLE_ABOUT _T( "About PuTTYCS...") -#define PUTTYCS_ABOUT_TEXT_LINE1 _T( "PuTTY Command Sender 1.3" ) +#define PUTTYCS_ABOUT_TEXT_LINE1 _T( "PuTTY Command Sender 1.4" ) #define PUTTYCS_ABOUT_TEXT_LINE2 _T( "© 2005 Jason Millard. All rights reserved." ) #define PUTTYCS_WINDOW_TITLE_FILTER_ADD _T( "Add Filter" ) @@ -86,6 +87,7 @@ #define PUTTYCS_PREF_WINDOW_ALWAYS_ON_TOP _T( "alwaysOnTop" ) #define PUTTYCS_PREF_MINIMIZE_TO_SYSTRAY _T( "minimizeToSysTray" ) #define PUTTYCS_PREF_WINDOW_TRANSITION _T( "transition" ) +#define PUTTYCS_PREF_WINDOW_OPACITY _T( "windowOpacity" ) #define PUTTYCS_PREF_AUTO_ARRANGE _T( "autoArrange" ) #define PUTTYCS_PREF_AUTO_ARRANGE_OFF 1 @@ -154,4 +156,8 @@ #define PUTTYCS_CASCADE_DIMENSION_WIDTH 600 #define PUTTYCS_CASCADE_DIMENSION_HEIGHT 400 +#define PUTTYCS_OPACITY_MIN 50 +#define PUTTYCS_OPACITY_MAX 255 + + #endif // !defined(DEFINES_H__INCLUDED_) diff --git a/PreferencesDialog.cpp b/PreferencesDialog.cpp index a4456e6..18c4a03 100755 --- a/PreferencesDialog.cpp +++ b/PreferencesDialog.cpp @@ -33,6 +33,7 @@ * 12/15/2005: Added minimize to system tray J. Millard * Updated Help/F1 to go visit website * Added tab completion + * 12/19/2005: Added window opacity J. Millard */ #include "stdafx.h" @@ -80,12 +81,13 @@ BEGIN_MESSAGE_MAP(CPreferencesDialog, CDialog) ON_BN_CLICKED(IDC_ALWAYSONTOP_CHECKBOX, OnAlwaysOnTopCheckbox) ON_EN_CHANGE(IDC_TRANSITION_EDIT, OnChangeTransition) ON_BN_CLICKED(IDC_EMULATECOPYPASTE_CHECKBOX, OnEmulateCopyPasteCheckbox) - ON_BN_CLICKED(IDC_OK_BUTTON, OnOKButton) ON_BN_CLICKED(IDC_MINIMIZETOSYSTRAY_CHECKBOX, OnMinimizeToSysTrayCheckbox) - ON_WM_HELPINFO() + ON_BN_CLICKED(IDC_TABCOMPLETION_CHECKBOX, OnTabCompletionCheckbox) ON_BN_CLICKED(IDC_AUTOARRANGE_CASCADE_RADIO, OnAutoArrangeRadio) ON_BN_CLICKED(IDC_AUTOARRANGE_TILE_RADIO, OnAutoArrangeRadio) - ON_BN_CLICKED(IDC_TABCOMPLETION_CHECKBOX, OnTabCompletionCheckbox) + ON_WM_HSCROLL() + ON_WM_HELPINFO() + ON_BN_CLICKED(IDC_OK_BUTTON, OnOKButton) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -251,6 +253,24 @@ void CPreferencesDialog::setTransition( int iTransition ) m_iTransition = iTransition; } +/** + * CPreferencesDialog::getOpacity() + */ + +int CPreferencesDialog::getOpacity() +{ + return m_iOpacity; +} + +/** + * CPreferencesDialog::setOpacity() + */ + +void CPreferencesDialog::setOpacity( int iOpacity ) +{ + m_iOpacity = iOpacity; +} + /** * CPreferencesDialog::getTabCompletion() */ @@ -344,6 +364,26 @@ BOOL CPreferencesDialog::OnInitDialog() SetDlgItemInt( IDC_TRANSITION_EDIT, m_iTransition ); + if ( CPuTTYCSApp::g_pSetLayeredWindowAttributes ) + { + ((CSliderCtrl*)GetDlgItem(IDC_OPACITY_SLIDER))-> + SetRange( PUTTYCS_OPACITY_MIN, PUTTYCS_OPACITY_MAX ); + + ((CSliderCtrl*)GetDlgItem(IDC_OPACITY_SLIDER))-> + SetPos( m_iOpacity ); + } + else + { + ((CStatic*)GetDlgItem(IDC_OPACITY1_STATIC))-> + ShowWindow( SW_HIDE ); + + ((CSliderCtrl*)GetDlgItem(IDC_OPACITY_SLIDER))-> + ShowWindow( SW_HIDE ); + + ((CStatic*)GetDlgItem(IDC_OPACITY2_STATIC))-> + ShowWindow( SW_HIDE ); + } + CheckDlgButton( IDC_TABCOMPLETION_CHECKBOX, m_iTabCompletion ); @@ -369,7 +409,35 @@ void CPreferencesDialog::UpdateDialog() ((CButton*) GetDlgItem(IDC_OK_BUTTON))-> EnableWindow( (m_iTransition >= 1) && - (m_iTransition <= 1500) ); + (m_iTransition <= 1500) && + (m_iOpacity >= PUTTYCS_OPACITY_MIN) ); + + float fPercent = + ((float) (m_iOpacity - PUTTYCS_OPACITY_MIN) / + (float) ((PUTTYCS_OPACITY_MAX + 1) - + (PUTTYCS_OPACITY_MIN))) * 100.; + + CString csOpacity; + csOpacity.Format( _T("%d%%"), ((int) fPercent) + 1 ); + + SetDlgItemText( IDC_OPACITY2_STATIC, csOpacity ); +} + +/** + * CPreferencesDialog::OnHScroll() + */ + +void CPreferencesDialog::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) +{ + if ( pScrollBar->GetDlgCtrlID() == IDC_OPACITY_SLIDER ) + { + m_iOpacity = + ((CSliderCtrl*) pScrollBar)->GetPos(); + } + + UpdateDialog(); + + CDialog::OnHScroll(nSBCode, nPos, pScrollBar); } /** @@ -503,5 +571,4 @@ void CPreferencesDialog::OnEmulateCopyPasteCheckbox() void CPreferencesDialog::OnOKButton() { CDialog::OnOK(); -} - +} \ No newline at end of file diff --git a/PreferencesDialog.h b/PreferencesDialog.h index f16f615..90e32d1 100755 --- a/PreferencesDialog.h +++ b/PreferencesDialog.h @@ -34,6 +34,7 @@ * 12/06/2005: Added mouse Copy/Paste emulation J. Millard * 12/15/2005: Added minimize to system tray J. Millard * Added tab completion + * 12/19/2005: Added window opacity J. Millard */ #if !defined(AFX_PREFERENCESDLG_H__4CD996C9_091F_4F4D_BFE3_EDD9236AB74B__INCLUDED_) @@ -79,6 +80,9 @@ class CPreferencesDialog : public CDialog int getMinimizeToSysTray(); void setMinimizeToSysTray( int iMinimizeToSysTray ); + int getOpacity(); + void setOpacity( int iOpacity ); + int getTransition(); void setTransition( int iTransition ); @@ -106,6 +110,7 @@ class CPreferencesDialog : public CDialog int m_iToolWindow; int m_iAlwaysOnTop; int m_iMinimizeToSysTray; + int m_iOpacity; int m_iTransition; int m_iEmulateCopyPaste; int m_iTabCompletion; @@ -126,6 +131,7 @@ class CPreferencesDialog : public CDialog afx_msg void OnMinimizeToSysTrayCheckbox(); afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo); afx_msg void OnTabCompletionCheckbox(); + afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); //}}AFX_MSG DECLARE_MESSAGE_MAP() diff --git a/PuTTYCS.clw b/PuTTYCS.clw index a0b9da7..8de6faa 100755 --- a/PuTTYCS.clw +++ b/PuTTYCS.clw @@ -19,12 +19,12 @@ Class7=CPreferencesDialog Class8=CPuTTYCSApp ResourceCount=7 -Resource1=IDD_PASSWORD_DIALOG +Resource1=IDD_ABOUT_DIALOG Resource2=IDD_FILTERS_DIALOG -Resource3=IDD_FILTER_DIALOG -Resource4=IDD_PREFERENCES_DIALOG -Resource5=IDD_PUTTYCS_DIALOG -Resource6=IDD_ABOUT_DIALOG +Resource3=IDD_PUTTYCS_DIALOG +Resource4=IDD_FILTER_DIALOG +Resource5=IDD_PREFERENCES_DIALOG +Resource6=IDD_PASSWORD_DIALOG Resource7=IDM_SYSTRAY_MENU [CLS:CAboutDialog] @@ -151,7 +151,7 @@ Control4=IDCANCEL,button,1342242816 [DLG:IDD_PREFERENCES_DIALOG] Type=1 Class=CPreferencesDialog -ControlCount=21 +ControlCount=24 Control1=IDC_STATIC,button,1342177287 Control2=IDC_TOOLWINDOW_CHECKBOX,button,1342242819 Control3=IDC_ALWAYSONTOP_CHECKBOX,button,1342242819 @@ -159,20 +159,23 @@ Control4=IDC_MINIMIZETOSYSTRAY_CHECKBOX,button,1342242819 Control5=IDC_STATIC,static,1342308352 Control6=IDC_TRANSITION_EDIT,edit,1350639744 Control7=IDC_STATIC,static,1342308352 -Control8=IDC_STATIC,button,1342177287 -Control9=IDC_AUTOARRANGE_OFF_RADIO,button,1342308361 -Control10=IDC_AUTOARRANGE_CASCADE_RADIO,button,1342177289 -Control11=IDC_AUTOARRANGE_TILE_RADIO,button,1342177289 -Control12=IDC_AUTOMINIMIZE_CHECKBOX,button,1342242819 -Control13=IDC_ARRANGEONSTARTUP_CHECKBOX,button,1342242819 -Control14=IDC_UNHIDEONEXIT_CHECKBOX,button,1342242819 -Control15=IDC_STATIC,button,1342177287 -Control16=IDC_EMULATECOPYPASTE_CHECKBOX,button,1342242819 -Control17=IDC_TABCOMPLETION_CHECKBOX,button,1342242819 +Control8=IDC_OPACITY1_STATIC,static,1342308864 +Control9=IDC_OPACITY_SLIDER,msctls_trackbar32,1342242816 +Control10=IDC_OPACITY2_STATIC,static,1342308864 +Control11=IDC_STATIC,button,1342177287 +Control12=IDC_AUTOARRANGE_OFF_RADIO,button,1342308361 +Control13=IDC_AUTOARRANGE_CASCADE_RADIO,button,1342177289 +Control14=IDC_AUTOARRANGE_TILE_RADIO,button,1342177289 +Control15=IDC_AUTOMINIMIZE_CHECKBOX,button,1342242819 +Control16=IDC_ARRANGEONSTARTUP_CHECKBOX,button,1342242819 +Control17=IDC_UNHIDEONEXIT_CHECKBOX,button,1342242819 Control18=IDC_STATIC,button,1342177287 -Control19=IDC_SAVEPASSWORD_CHECKBOX,button,1342242819 -Control20=IDC_OK_BUTTON,button,1342242817 -Control21=IDCANCEL,button,1342242816 +Control19=IDC_EMULATECOPYPASTE_CHECKBOX,button,1342242819 +Control20=IDC_TABCOMPLETION_CHECKBOX,button,1342242819 +Control21=IDC_STATIC,button,1342177287 +Control22=IDC_SAVEPASSWORD_CHECKBOX,button,1342242819 +Control23=IDC_OK_BUTTON,button,1342242817 +Control24=IDCANCEL,button,1342242816 [DLG:IDD_PUTTYCS_DIALOG] Type=1 diff --git a/PuTTYCS.cpp b/PuTTYCS.cpp index 25d07f1..a21871b 100755 --- a/PuTTYCS.cpp +++ b/PuTTYCS.cpp @@ -29,6 +29,7 @@ * * 11/07/2005: Initial version J. Millard * 11/17/2005: Added UNICODE support J. Millard + * 12/19/2005: Added window opacity J. Millard */ #include "stdafx.h" @@ -41,6 +42,8 @@ static char THIS_FILE[] = __FILE__; #endif +lpfn CPuTTYCSApp::g_pSetLayeredWindowAttributes = NULL; + BEGIN_MESSAGE_MAP(CPuTTYCSApp, CWinApp) //{{AFX_MSG_MAP(CPuTTYCSApp) // NOTE - the ClassWizard will add and remove mapping macros here. @@ -68,6 +71,16 @@ CPuTTYCSApp theApp; BOOL CPuTTYCSApp::InitInstance() { + /** + * VC++ 6.0 layered windows support + */ + + HMODULE hUser32 = + GetModuleHandle( _T("USER32.DLL") ); + + g_pSetLayeredWindowAttributes = + (lpfn) GetProcAddress(hUser32, "SetLayeredWindowAttributes"); + /** * Search for existing application * (tool window style first, then app window style) @@ -76,6 +89,7 @@ BOOL CPuTTYCSApp::InitInstance() CWnd* pAppWnd = CWnd::FindWindow( NULL, PUTTYCS_WINDOW_TITLE_TOOL ); + if ( !pAppWnd ) { pAppWnd = diff --git a/PuTTYCS.h b/PuTTYCS.h index 1a0ebcc..2a00f6f 100755 --- a/PuTTYCS.h +++ b/PuTTYCS.h @@ -29,6 +29,7 @@ * * 11/07/2005: Initial version J. Millard * 11/17/2005: Added UNICODE support J. Millard + * 12/19/2005: Added window opacity J. Millard */ #if !defined(AFX_PuTTYCS_H__0CA01026_D42B_4CD9_AD0C_DE18E2410D45__INCLUDED_) @@ -44,11 +45,28 @@ #include "resource.h" // main symbols +/** + * VC++ 6.0 layered windows support + */ + +typedef BOOL (WINAPI *lpfn) (HWND hWnd, COLORREF cr, BYTE bAlpha, DWORD dwFlags); + +#define WS_EX_LAYERED 0x00080000 + +#define LWA_COLORKEY 1 +#define LWA_ALPHA 2 + +/** + * CPuTTYCSApp + */ + class CPuTTYCSApp : public CWinApp { public: CPuTTYCSApp(); + static lpfn g_pSetLayeredWindowAttributes; + // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CPuTTYCSApp) diff --git a/PuTTYCS.rc b/PuTTYCS.rc index 6ba6c39..8cbe104 100755 --- a/PuTTYCS.rc +++ b/PuTTYCS.rc @@ -77,7 +77,7 @@ IDD_PUTTYCS_DIALOG DIALOGEX 0, 0, 212, 174 STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN LTEXT "PuTTY Filter:",IDC_STATIC,7,6,88,8 COMBOBOX IDC_FILTERS_COMBOBOX,7,17,198,114,CBS_DROPDOWNLIST | @@ -138,10 +138,15 @@ BEGIN BS_AUTOCHECKBOX | WS_TABSTOP,13,33,72,10 CONTROL "Minimize to system tray",IDC_MINIMIZETOSYSTRAY_CHECKBOX, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,46,84,10 - LTEXT "Transition:",IDC_STATIC,108,20,34,10 - EDITTEXT IDC_TRANSITION_EDIT,145,17,22,14,ES_AUTOHSCROLL | + LTEXT "Transition:",IDC_STATIC,108,21,34,10 + EDITTEXT IDC_TRANSITION_EDIT,145,18,22,12,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "ms",IDC_STATIC,171,20,10,10 + LTEXT "ms",IDC_STATIC,171,21,10,10 + LTEXT "Opacity:",IDC_OPACITY1_STATIC,108,46,34,10, + SS_CENTERIMAGE + CONTROL "Slider1",IDC_OPACITY_SLIDER,"msctls_trackbar32", + WS_TABSTOP,141,45,35,11 + LTEXT "100%",IDC_OPACITY2_STATIC,177,46,18,10,SS_CENTERIMAGE GROUPBOX "Auto arrange:",IDC_STATIC,7,66,197,57 CONTROL "Off",IDC_AUTOARRANGE_OFF_RADIO,"Button", BS_AUTORADIOBUTTON | WS_GROUP,13,81,44,10 @@ -232,8 +237,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,0,0 - PRODUCTVERSION 1,3,0,0 + FILEVERSION 1,4,0,0 + PRODUCTVERSION 1,4,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -251,14 +256,14 @@ BEGIN VALUE "Comments", "Created by Jason Millard\0" VALUE "CompanyName", "\0" VALUE "FileDescription", "PuTTYCS\0" - VALUE "FileVersion", "1, 3, 0, 0\0" + VALUE "FileVersion", "1, 4, 0, 0\0" VALUE "InternalName", "PuTTYCS\0" VALUE "LegalCopyright", "Copyright (C) 2005\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "PuTTYCS.EXE\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "PuTTYCS - PuTTY Command Sender 1.3\0" - VALUE "ProductVersion", "1, 3, 0, 0\0" + VALUE "ProductVersion", "1, 4, 0, 0\0" VALUE "SpecialBuild", "\0" END END diff --git a/PuTTYCSDialog.cpp b/PuTTYCSDialog.cpp index a72efab..95a8b7d 100755 --- a/PuTTYCSDialog.cpp +++ b/PuTTYCSDialog.cpp @@ -37,6 +37,7 @@ * moves cursor to end of command * 12/15/2005: Added minimize to system tray J. Millard * Added tab completion + * 12/19/2005: Added window opacity J. Millard */ #include "stdafx.h" @@ -248,6 +249,11 @@ void CPuTTYCSDialog::LoadPreferences() AfxGetApp()->GetProfileInt( PUTTYCS_APP_NAME, PUTTYCS_PREF_WINDOW_TRANSITION, 25 ); + m_iOpacity = + AfxGetApp()->GetProfileInt( + PUTTYCS_APP_NAME, PUTTYCS_PREF_WINDOW_OPACITY, + PUTTYCS_OPACITY_MAX ); + /** * Auto arrange */ @@ -375,6 +381,9 @@ void CPuTTYCSDialog::SavePreferences() AfxGetApp()->WriteProfileInt( PUTTYCS_APP_NAME, PUTTYCS_PREF_WINDOW_TRANSITION, m_iTransition ); + AfxGetApp()->WriteProfileInt( PUTTYCS_APP_NAME, + PUTTYCS_PREF_WINDOW_OPACITY, m_iOpacity ); + /** * Auto arrange */ @@ -476,11 +485,11 @@ void CPuTTYCSDialog::SetSysTrayTip( CString csTip ) m_pTNI->hWnd = ((CWnd*) this)->GetSafeHwnd(); - m_pTNI->cbSize = sizeof( NOTIFYICONDATA ); + m_pTNI->cbSize = sizeof( NOTIFYICONDATA ); m_pTNI->uCallbackMessage = WM_TNI_MESSAGE; - m_pTNI->uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; + m_pTNI->uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; m_pTNI->hIcon = m_hIcon; - m_pTNI->uTimeout = 1000; + m_pTNI->uTimeout = 1000; m_pTNI->uID = 1; dwMessage = NIM_ADD; @@ -806,11 +815,11 @@ void CPuTTYCSDialog::RefreshDialog() void CPuTTYCSDialog::UpdateDialog() { - CRect dialogRect; - GetWindowRect(&dialogRect); - long windowStyle = GetWindowLong( m_hWnd, GWL_EXSTYLE ); + + CRect dialogRect; + GetWindowRect(&dialogRect); if (m_iToolWindow) { @@ -832,6 +841,11 @@ void CPuTTYCSDialog::UpdateDialog() SetWindowText( PUTTYCS_WINDOW_TITLE_APP ); } + if ( CPuTTYCSApp::g_pSetLayeredWindowAttributes ) + { + windowStyle |= WS_EX_LAYERED; + } + SetWindowLong( m_hWnd, GWL_EXSTYLE, windowStyle ); const CWnd* pLocation = &CWnd::wndNoTopMost; @@ -841,6 +855,19 @@ void CPuTTYCSDialog::UpdateDialog() pLocation = &CWnd::wndTopMost; } + if ( CPuTTYCSApp::g_pSetLayeredWindowAttributes ) + { + /** + * Added delay, because top most PuTTY + * window does not redraw correctly + */ + + ::Sleep( 20 ); + + CPuTTYCSApp::g_pSetLayeredWindowAttributes( + m_hWnd, 0, m_iOpacity, LWA_ALPHA ); + } + SetWindowPos( pLocation, 0, 0, dialogRect.Width(), dialogRect.Height(), SWP_NOMOVE ); @@ -1387,6 +1414,9 @@ void CPuTTYCSDialog::OnPreferencesButton() pDialog-> setTransition( m_iTransition ); + pDialog-> + setOpacity(m_iOpacity ); + /** * Keyboard/Mouse */ @@ -1439,6 +1469,11 @@ void CPuTTYCSDialog::OnPreferencesButton() m_iMinimizeToSysTray = pDialog->getMinimizeToSysTray(); + int iOpacity = m_iOpacity; + + m_iOpacity = + pDialog->getOpacity(); + m_iTransition = pDialog->getTransition(); @@ -1446,8 +1481,8 @@ void CPuTTYCSDialog::OnPreferencesButton() * Keyboard/Mouse */ - m_iTabCompletion = - pDialog->getTabCompletion(); + m_iTabCompletion = + pDialog->getTabCompletion(); m_iEmulateCopyPaste = pDialog->getEmulateCopyPaste(); @@ -1458,7 +1493,8 @@ void CPuTTYCSDialog::OnPreferencesButton() * Window refresh */ - if ( (iToolWindow != m_iToolWindow) || + if ( (iOpacity != m_iOpacity) || + (iToolWindow != m_iToolWindow) || (iAlwaysOnTop != m_iAlwaysOnTop) ) { ShowWindow(SW_HIDE); @@ -1940,4 +1976,12 @@ int CPuTTYCSDialog::Compare( const void *pWndS1, const void *pWndS2 ) ((CWnd*) pWnd2)->GetWindowText( csS2 ); return ( csS1 < csS2 ); -} \ No newline at end of file +} + +BOOL CPuTTYCSDialog::PreCreateWindow(CREATESTRUCT& cs) +{ + + // TODO: Add your specialized code here and/or call the base class + + return CDialog::PreCreateWindow(cs); +} diff --git a/PuTTYCSDialog.h b/PuTTYCSDialog.h index b292664..1f26a56 100755 --- a/PuTTYCSDialog.h +++ b/PuTTYCSDialog.h @@ -37,6 +37,7 @@ * moves cursor to end of command * 12/15/2005: Added minimize to system tray J. Millard * Added tab completion + * 12/19/2005: Added window opacity J. Millard */ #if !defined(AFX_PuTTYCSDLG_H__7BCAE5A7_75C4_4831_82FD_5A13F846FE61__INCLUDED_) @@ -71,6 +72,7 @@ class CPuTTYCSDialog : public CDialog virtual BOOL DestroyWindow(); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX_VIRTUAL // Implementation @@ -109,6 +111,7 @@ class CPuTTYCSDialog : public CDialog int m_iToolWindow; int m_iAlwaysOnTop; int m_iMinimizeToSysTray; + int m_iOpacity; int m_iTransition; /** diff --git a/readme.txt b/readme.txt index d60fba8..fe435db 100755 --- a/readme.txt +++ b/readme.txt @@ -1,11 +1,12 @@ -PuTTYCS - PuTTY Command Sender v1.3 +PuTTYCS - PuTTY Command Sender v1.4 (C) 2005 - Jason Millard - jsm174@gmail.com -Release Date: 12/15/05 +Release Date: 12/19/05 VERSION HISTORY --------------- +12/19/05 - v1.4 - Added window opacity 12/15/05 - v1.3 - Added minimize to system tray Added tab completion 12/06/05 - v1.2 - Added mouse Copy/Paste emulation @@ -193,6 +194,11 @@ Preferences are loaded each time PuTTYCS is started. NOTE: The slower the machine the higher this value should be. + Opacity: + Use the slider to set the opacity for the PuTTYCS + window. This maybe useful if PuTTYCS sometimes blocks + your existing PuTTY windows. + Auto Arrange (Off, Cascade, Tile) When switching filters, automatically cascade or tile PuTTY windows. diff --git a/resource.h b/resource.h index d7f7f6a..5605e1b 100755 --- a/resource.h +++ b/resource.h @@ -68,6 +68,9 @@ #define IDC_VISITWEBSITE_BUTTON 1503 #define IDC_ABOUT_TEXT_LINE3 1504 #define IDC_COMMAND_RICHEDIT 1600 +#define IDC_OPACITY_SLIDER 1601 +#define IDC_OPACITY2_STATIC 1602 +#define IDC_OPACITY1_STATIC 1603 #define IDMI_SYSTRAYOPEN_MENUITEM 32771 #define IDMI_SYSTRAYCASCADE_MENUITEM 32772 #define IDMI_SYSTRAYABOUT_MENUITEM 32773 @@ -82,7 +85,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 134 #define _APS_NEXT_COMMAND_VALUE 32780 -#define _APS_NEXT_CONTROL_VALUE 1601 +#define _APS_NEXT_CONTROL_VALUE 1604 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/setup.iss b/setup.iss index f0e0775..62c9963 100755 --- a/setup.iss +++ b/setup.iss @@ -29,14 +29,15 @@ ; ; 12/06/2005: Initial version J. Millard ; 12/15/2005: Updated for version 1.3 J. Millard +; 12/19/2005: Updated for version 1.4 J. Millard ; [Setup] -AppName=PuTTYCS 1.3 -AppVerName=PuTTY Command Sender 1.3 -VersionInfoVersion=1.3.0.0 +AppName=PuTTYCS 1.4 +AppVerName=PuTTY Command Sender 1.4 +VersionInfoVersion=1.4.0.0 VersionInfoCopyright=Copyright (C) 2005 Jason Millard -VersionInfoDescription=PuTTYCS - PuTTY Command Sender 1.3 +VersionInfoDescription=PuTTYCS - PuTTY Command Sender 1.4 AppPublisher=Jason Millard AppPublisherURL=http://www.millardsoftware.com/puttycs AppSupportURL=http://www.millardsoftware.com/puttycs @@ -65,11 +66,11 @@ Source: "README.txt"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] -Name: "{group}\PuTTYCS 1.3"; Filename: "{app}\PuTTYCS.exe" +Name: "{group}\PuTTYCS 1.4"; Filename: "{app}\PuTTYCS.exe" Name: "{group}\README.txt"; Filename: "{app}\README.txt" -Name: "{userdesktop}\PuTTYCS 1.3"; Filename: "{app}\PuTTYCS.exe"; Tasks: desktopicon -Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\PuTTYCS 1.3"; Filename: "{app}\PuTTYCS.exe"; Tasks: quicklaunchicon +Name: "{userdesktop}\PuTTYCS 1.4"; Filename: "{app}\PuTTYCS.exe"; Tasks: desktopicon +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\PuTTYCS 1.4"; Filename: "{app}\PuTTYCS.exe"; Tasks: quicklaunchicon [Run] Filename: "{app}\README.txt"; Description: "{cm:ViewREADME}"; Flags: postinstall shellexec skipifsilent -Filename: "{app}\PuTTYCS.exe"; Description: "{cm:LaunchProgram,PuTTY Command Sender 1.3}"; Flags: nowait postinstall skipifsilent +Filename: "{app}\PuTTYCS.exe"; Description: "{cm:LaunchProgram,PuTTY Command Sender 1.4}"; Flags: nowait postinstall skipifsilent