[NEW_FEATURE] Add restore button in fullscreen and postIt mode.
[BUG_FIXED] Fix auto-updater bug. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@590 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
2ec3cdea2f
commit
b186f2a055
@ -8101,6 +8101,9 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa
|
||||
if (appDataNpp[0])
|
||||
_pluginsManager.loadPlugins(appDataNpp);
|
||||
|
||||
_restoreButton.init(_hInst, _hSelf);
|
||||
|
||||
|
||||
// ------------ //
|
||||
// Menu Section //
|
||||
// ------------ //
|
||||
@ -10236,7 +10239,12 @@ void Notepad_plus::fullScreenToggle()
|
||||
}
|
||||
|
||||
//Setup GUI
|
||||
if (!_beforeSpecialView.isPostIt)
|
||||
int bs = buttonStatus_fullscreen;
|
||||
if (_beforeSpecialView.isPostIt)
|
||||
{
|
||||
bs |= buttonStatus_postit;
|
||||
}
|
||||
else
|
||||
{
|
||||
//only change the GUI if not already done by postit
|
||||
_beforeSpecialView.isMenuShown = ::SendMessage(_hSelf, NPPM_ISMENUHIDDEN, 0, 0) != TRUE;
|
||||
@ -10247,6 +10255,7 @@ void Notepad_plus::fullScreenToggle()
|
||||
_rebarTop.display(false);
|
||||
_rebarBottom.display(false);
|
||||
}
|
||||
_restoreButton.setButtonStatus(bs);
|
||||
|
||||
//Hide window so windows can properly update it
|
||||
::ShowWindow(_hSelf, SW_HIDE);
|
||||
@ -10264,12 +10273,31 @@ void Notepad_plus::fullScreenToggle()
|
||||
::ShowWindow(_hSelf, SW_SHOW);
|
||||
::SetWindowPos(_hSelf, HWND_TOP, fullscreenArea.left, fullscreenArea.top, fullscreenArea.right, fullscreenArea.bottom, SWP_NOZORDER|SWP_DRAWFRAME|SWP_FRAMECHANGED);
|
||||
::SetForegroundWindow(_hSelf);
|
||||
|
||||
// show restore button
|
||||
_restoreButton.doDialog(_isRTL);
|
||||
|
||||
RECT rect;
|
||||
GetWindowRect(_restoreButton.getHSelf(), &rect);
|
||||
int w = rect.right - rect.left;
|
||||
int h = rect.bottom - rect.top;
|
||||
|
||||
RECT nppRect;
|
||||
GetWindowRect(_hSelf, &nppRect);
|
||||
int x = nppRect.right - w;
|
||||
int y = nppRect.top;
|
||||
::MoveWindow(_restoreButton.getHSelf(), x, y, w, h, FALSE);
|
||||
|
||||
_pEditView->getFocus();
|
||||
}
|
||||
else //toggle fullscreen off
|
||||
{
|
||||
//Hide window for updating, restore style and menu then restore position and Z-Order
|
||||
::ShowWindow(_hSelf, SW_HIDE);
|
||||
|
||||
_restoreButton.setButtonStatus(buttonStatus_fullscreen ^ _restoreButton.getButtonStatus());
|
||||
_restoreButton.display(false);
|
||||
|
||||
//Setup GUI
|
||||
if (!_beforeSpecialView.isPostIt)
|
||||
{
|
||||
@ -10333,7 +10361,12 @@ void Notepad_plus::postItToggle()
|
||||
::SendMessage(_hSelf, WM_COMMAND, IDM_VIEW_ALWAYSONTOP, 0);
|
||||
}
|
||||
//Only check these if not fullscreen
|
||||
if (!_beforeSpecialView.isFullScreen)
|
||||
int bs = buttonStatus_postit;
|
||||
if (_beforeSpecialView.isFullScreen)
|
||||
{
|
||||
bs |= buttonStatus_fullscreen;
|
||||
}
|
||||
else
|
||||
{
|
||||
_beforeSpecialView.isMenuShown = ::SendMessage(_hSelf, NPPM_ISMENUHIDDEN, 0, 0) != TRUE;
|
||||
if (_beforeSpecialView.isMenuShown)
|
||||
@ -10343,6 +10376,7 @@ void Notepad_plus::postItToggle()
|
||||
_rebarTop.display(false);
|
||||
_rebarBottom.display(false);
|
||||
}
|
||||
_restoreButton.setButtonStatus(bs);
|
||||
|
||||
// PostIt!
|
||||
|
||||
@ -10359,9 +10393,28 @@ void Notepad_plus::postItToggle()
|
||||
::SetWindowPos(_hSelf, HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_DRAWFRAME|SWP_FRAMECHANGED);
|
||||
::ShowWindow(_hSelf, SW_SHOW);
|
||||
}
|
||||
|
||||
// show restore button
|
||||
_restoreButton.doDialog(_isRTL);
|
||||
|
||||
RECT rect;
|
||||
GetWindowRect(_restoreButton.getHSelf(), &rect);
|
||||
int w = rect.right - rect.left;
|
||||
int h = rect.bottom - rect.top;
|
||||
|
||||
RECT nppRect;
|
||||
GetWindowRect(_hSelf, &nppRect);
|
||||
int x = nppRect.right - w;
|
||||
int y = nppRect.top;
|
||||
::MoveWindow(_restoreButton.getHSelf(), x, y, w, h, FALSE);
|
||||
|
||||
_pEditView->getFocus();
|
||||
}
|
||||
else //PostIt enabled, disable it
|
||||
{
|
||||
_restoreButton.setButtonStatus(buttonStatus_postit ^ _restoreButton.getButtonStatus());
|
||||
_restoreButton.display(false);
|
||||
|
||||
//Setup GUI
|
||||
if (!_beforeSpecialView.isFullScreen)
|
||||
{
|
||||
|
@ -106,6 +106,10 @@
|
||||
#include "ScintillaCtrls.h"
|
||||
#endif //SCINTILLACTRLS_H
|
||||
|
||||
#ifndef SIZE_DLG_H
|
||||
#include "lesDlgs.h"
|
||||
#endif //SIZE_DLG_H
|
||||
|
||||
#define MENU 0x01
|
||||
#define TOOLBAR 0x02
|
||||
|
||||
@ -377,6 +381,7 @@ private:
|
||||
ScintillaAccelerator _scintaccelerator;
|
||||
|
||||
PluginsManager _pluginsManager;
|
||||
ButtonDlg _restoreButton;
|
||||
|
||||
bool _isRTL;
|
||||
winVer _winVersion;
|
||||
|
@ -786,5 +786,12 @@ BEGIN
|
||||
EDITTEXT IDC_VALUE_EDIT,49,2,18,14,ES_NUMBER,WS_EX_DLGMODALFRAME
|
||||
END
|
||||
|
||||
IDD_BUTTON_DLG DIALOGEX 0, 0, 51, 17
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
PUSHBUTTON "Restore",IDC_RESTORE_BUTTON,0,0,51,17
|
||||
END
|
||||
|
||||
// xp style
|
||||
1 RT_MANIFEST "notepad++.exe.manifest"
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "precompiledHeaders.h"
|
||||
#include "lesDlgs.h"
|
||||
#include "resource.h"
|
||||
#include "menuCmdID.h"
|
||||
|
||||
void ValueDlg::init(HINSTANCE hInst, HWND parent, int valueToSet, const TCHAR *text)
|
||||
{
|
||||
@ -108,3 +109,60 @@ BOOL CALLBACK ValueDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL CALLBACK ButtonDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
switch (Message)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_COMMAND :
|
||||
{
|
||||
switch (wParam)
|
||||
{
|
||||
case IDC_RESTORE_BUTTON :
|
||||
{
|
||||
int bs = getButtonStatus();
|
||||
bool isFullScreen = (bs & buttonStatus_fullscreen) != 0;
|
||||
bool isPostIt = (bs & buttonStatus_postit) != 0;
|
||||
int cmd = 0;
|
||||
if (isFullScreen && isPostIt)
|
||||
{
|
||||
// remove postit firstly
|
||||
cmd = IDM_VIEW_POSTIT;
|
||||
}
|
||||
else if (isFullScreen)
|
||||
{
|
||||
cmd = IDM_VIEW_FULLSCREENTOGGLE;
|
||||
}
|
||||
else if (isPostIt)
|
||||
{
|
||||
cmd = IDM_VIEW_POSTIT;
|
||||
}
|
||||
::SendMessage(_hParent, WM_COMMAND, cmd, 0);
|
||||
display(false);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
default :
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void ButtonDlg::doDialog(bool isRTL)
|
||||
{
|
||||
if (!isCreated())
|
||||
create(IDD_BUTTON_DLG, isRTL);
|
||||
display();
|
||||
}
|
||||
|
@ -40,7 +40,44 @@ private :
|
||||
int _defaultValue;
|
||||
generic_string _name;
|
||||
POINT _p;
|
||||
|
||||
};
|
||||
|
||||
// 0 : sans fullscreen
|
||||
// 1 : fullscreen
|
||||
// 2 : postit
|
||||
const int buttonStatus_nada = 0;
|
||||
const int buttonStatus_fullscreen = 1;
|
||||
const int buttonStatus_postit = 2;
|
||||
|
||||
class ButtonDlg : public StaticDialog
|
||||
{
|
||||
public :
|
||||
ButtonDlg() : StaticDialog(), _buttonStatus(buttonStatus_nada) {};
|
||||
void init(HINSTANCE hInst, HWND parent){
|
||||
Window::init(hInst, parent);
|
||||
};
|
||||
|
||||
void doDialog(bool isRTL = false);
|
||||
void destroy() {};
|
||||
int getButtonStatus() const {
|
||||
return _buttonStatus;
|
||||
};
|
||||
void setButtonStatus(int buttonStatus) {
|
||||
_buttonStatus = buttonStatus;
|
||||
};
|
||||
|
||||
void display(bool toShow = true) const {
|
||||
int cmdToShow = toShow?SW_SHOW:SW_HIDE;
|
||||
if (!toShow)
|
||||
{
|
||||
cmdToShow = (_buttonStatus != buttonStatus_nada)?SW_SHOW:SW_HIDE;
|
||||
}
|
||||
::ShowWindow(_hSelf, cmdToShow);
|
||||
};
|
||||
|
||||
protected :
|
||||
BOOL CALLBACK run_dlgProc(UINT Message, WPARAM wParam, LPARAM);
|
||||
int _buttonStatus;
|
||||
|
||||
};
|
||||
#endif //TABSIZE_DLG_H
|
||||
|
@ -19,7 +19,7 @@
|
||||
#define RESOURCE_H
|
||||
|
||||
#define NOTEPAD_PLUS_VERSION TEXT("Notepad++ v5.6.2")
|
||||
#define VERSION_VALUE TEXT("5.6.2\0") // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
||||
#define VERSION_VALUE TEXT("5.62\0") // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
||||
#define VERSION_DIGITALVALUE 5, 6, 2, 0
|
||||
|
||||
#ifdef UNICODE
|
||||
@ -269,6 +269,9 @@
|
||||
#define IDC_VALUE_STATIC 2401
|
||||
#define IDC_VALUE_EDIT 2402
|
||||
|
||||
#define IDD_BUTTON_DLG 2410
|
||||
#define IDC_RESTORE_BUTTON 2411
|
||||
|
||||
// see TaskListDlg_rc.h
|
||||
//#define IDD_TASKLIST_DLG 2450
|
||||
#define IDD_SETTING_DLG 2500
|
||||
|
Loading…
Reference in New Issue
Block a user