mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
CtrlCore, ide: DeactivateBy(Ctrl *), improved save on deactivate in ide
git-svn-id: svn://ultimatepp.org/upp/trunk@8482 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
4d10e102c9
commit
19d2116a26
6 changed files with 18 additions and 4 deletions
|
|
@ -47,6 +47,8 @@ int Ctrl::OverPaint() const { return 0; }
|
|||
|
||||
void Ctrl::Activate() {}
|
||||
void Ctrl::Deactivate() {}
|
||||
void Ctrl::DeactivateBy(Ctrl *) {}
|
||||
|
||||
void Ctrl::CancelMode() {}
|
||||
void Ctrl::MouseEnter(Point p, dword keyflags) {}
|
||||
void Ctrl::LeftDown(Point p, dword keyflags) {}
|
||||
|
|
|
|||
|
|
@ -796,6 +796,7 @@ public:
|
|||
|
||||
virtual void Activate();
|
||||
virtual void Deactivate();
|
||||
virtual void DeactivateBy(Ctrl *new_focus);
|
||||
|
||||
virtual Image FrameMouseEvent(int event, Point p, int zdelta, dword keyflags);
|
||||
virtual Image MouseEvent(int event, Point p, int zdelta, dword keyflags);
|
||||
|
|
|
|||
|
|
@ -144,6 +144,7 @@ void Ctrl::DoDeactivate(Ptr<Ctrl> pfocusCtrl, Ptr<Ctrl> nfocusCtrl)
|
|||
Ctrl *ntop = nfocusCtrl ? nfocusCtrl->GetTopCtrl() : NULL;
|
||||
LLOG("DoDeactivate " << UPP::Name(ptop) << " in favor of " << UPP::Name(ntop));
|
||||
if(ntop != ptop && !ptop->destroying) {
|
||||
ptop->DeactivateBy(ntop);
|
||||
ptop->Deactivate();
|
||||
if(ptop)
|
||||
ptop->StateH(DEACTIVATE);
|
||||
|
|
|
|||
|
|
@ -293,6 +293,16 @@ foreground or changing its caption).&]
|
|||
[s5;:Ctrl`:`:Deactivate`(`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* Deactivate]()&]
|
||||
[s2;b17;a17; This method is called when Ctrl is top`-level and is
|
||||
deactivated `- focus has gone outside of Ctrl and its child Ctrls.&]
|
||||
[s3; &]
|
||||
[s4;%- &]
|
||||
[s5;:Upp`:`:Ctrl`:`:DeactivateBy`(Upp`:`:Ctrl`*`):%- [@(0.0.255) virtual]
|
||||
[@(0.0.255) void]_[* DeactivateBy]([_^Upp`:`:Ctrl^ Ctrl]_`*[*@3 new`_focus])&]
|
||||
[s2; Similar to Deactivate without parameter, but if a widget that
|
||||
caused deactivation by getting a focus is part of the same appliaction,
|
||||
[%-*@3 new`_focus] contains a pointer to it. If deactivation is
|
||||
caused by switching to another application, this parameter is
|
||||
NULL. Both variants of Deactivate are called, the variant with
|
||||
paremeter is called first.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:Ctrl`:`:FrameMouseEvent`(int`,Point`,int`,dword`):%- [@(0.0.255) virtual]
|
||||
|
|
|
|||
|
|
@ -354,14 +354,14 @@ void Ide::CycleFiles()
|
|||
}
|
||||
}
|
||||
|
||||
void Ide::Deactivate()
|
||||
void Ide::DeactivateBy(Ctrl *new_focus)
|
||||
{
|
||||
if(deactivate_save && issaving == 0) {
|
||||
if(deactivate_save && issaving == 0 && !new_focus && editor.GetLength() < 1000000) {
|
||||
DeactivationSave(true);
|
||||
SaveFile();
|
||||
DeactivationSave(false);
|
||||
}
|
||||
TopWindow::Deactivate();
|
||||
TopWindow::DeactivateBy(new_focus);
|
||||
}
|
||||
|
||||
void Ide::Activate()
|
||||
|
|
|
|||
|
|
@ -329,7 +329,7 @@ public:
|
|||
virtual void FileRename(const String& nm);
|
||||
virtual bool FileRemove();
|
||||
virtual void DragAndDrop(Point p, PasteClip& d);
|
||||
virtual void Deactivate();
|
||||
virtual void DeactivateBy(Ctrl *new_focus);
|
||||
virtual void Activate();
|
||||
virtual void Layout();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue