📄 saga_frame.cpp
字号:
Iconize(false);
}
if( IsMaximized() )
{
CONFIG_Write(wxT("/FL"), wxT("STATE"), (long)1);
}
else
{
CONFIG_Write(wxT("/FL"), wxT("STATE"), (long)0);
CONFIG_Write(wxT("/FL"), wxT("X" ), (long)GetPosition().x);
CONFIG_Write(wxT("/FL"), wxT("Y" ), (long)GetPosition().y);
CONFIG_Write(wxT("/FL"), wxT("DX" ), (long)GetSize().x);
CONFIG_Write(wxT("/FL"), wxT("DY" ), (long)GetSize().y);
}
//-----------------------------------------------------
CONFIG_Write(wxT("/FL"), wxT("MANAGER"), m_pLayout->SavePerspective().c_str());
m_pLayout->UnInit();
delete(m_pLayout);
//-----------------------------------------------------
if( m_pTopWindows )
{
delete(m_pTopWindows);
}
SG_Set_UI_Callback(NULL);
g_pSAGA_Frame = NULL;
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::On_Close(wxCloseEvent &event)
{
if( event.CanVeto() )
{
if( !g_pModule && DLG_Message_Confirm(ID_DLG_CLOSE) && g_pData->Close(true) )
{
g_pModules->Finalise();
Destroy();
}
else
{
if( g_pModule )
{
DLG_Message_Show(LNG("Please stop module execution before exiting SAGA."), LNG("Exit SAGA"));
}
event.Veto();
}
}
else
{
g_pModules->Finalise();
g_pData->Close(true);
event.Skip();
}
}
//---------------------------------------------------------
void CSAGA_Frame::On_Size(wxSizeEvent &event)
{
event.Skip();
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::On_Quit(wxCommandEvent &WXUNUSED(event))
{
Close(false);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Help(wxCommandEvent &WXUNUSED(event))
{
DLG_Message_Show(
LNG("Currently no help files exist for SAGA.\nIt depends on your support, if you will find any help at this place in future!\nThanks a lot..."),
LNG("SAGA Help")
);
}
//---------------------------------------------------------
void CSAGA_Frame::On_About(wxCommandEvent &WXUNUSED(event))
{
CDLG_About dlg;
dlg.ShowModal();
}
//---------------------------------------------------------
void CSAGA_Frame::On_Tips(wxCommandEvent &WXUNUSED(event))
{
Show_Tips(true);
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_Cascade(wxCommandEvent &WXUNUSED(event))
{
Cascade();
}
void CSAGA_Frame::On_Frame_Cascade_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_hTile(wxCommandEvent &WXUNUSED(event))
{
Tile(wxHORIZONTAL);
}
void CSAGA_Frame::On_Frame_hTile_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_vTile(wxCommandEvent &WXUNUSED(event))
{
Tile(wxVERTICAL);
}
void CSAGA_Frame::On_Frame_vTile_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_ArrangeIcons(wxCommandEvent &WXUNUSED(event))
{
ArrangeIcons();
}
void CSAGA_Frame::On_Frame_ArrangeIcons_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_Next(wxCommandEvent &WXUNUSED(event))
{
ActivateNext();
}
void CSAGA_Frame::On_Frame_Next_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_Previous(wxCommandEvent &WXUNUSED(event))
{
ActivatePrevious();
}
void CSAGA_Frame::On_Frame_Previous_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_Close(wxCommandEvent &WXUNUSED(event))
{
if( GetActiveChild() != NULL )
{
GetActiveChild()->Close();
}
}
void CSAGA_Frame::On_Frame_Close_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Frame_Close_All(wxCommandEvent &WXUNUSED(event))
{
while( GetActiveChild() != NULL )
{
delete(GetActiveChild());
}
}
void CSAGA_Frame::On_Frame_Close_All_UI(wxUpdateUIEvent &event)
{
event.Enable(GetActiveChild() != NULL);
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::On_WKSP_Show(wxCommandEvent &WXUNUSED(event))
{
_Bar_Toggle(m_pWKSP);
}
void CSAGA_Frame::On_WKSP_Show_UI(wxUpdateUIEvent &event)
{
event.Check(m_pWKSP->IsShown() && m_pLayout->GetPane(m_pWKSP).IsShown());
}
//---------------------------------------------------------
void CSAGA_Frame::On_Active_Show(wxCommandEvent &WXUNUSED(event))
{
_Bar_Toggle(m_pActive);
}
void CSAGA_Frame::On_Active_Show_UI(wxUpdateUIEvent &event)
{
event.Check(m_pActive->IsShown() && m_pLayout->GetPane(m_pActive).IsShown());
}
//---------------------------------------------------------
void CSAGA_Frame::On_INFO_Show(wxCommandEvent &WXUNUSED(event))
{
_Bar_Toggle(m_pINFO);
}
void CSAGA_Frame::On_INFO_Show_UI(wxUpdateUIEvent &event)
{
event.Check(m_pINFO->IsShown() && m_pLayout->GetPane(m_pINFO).IsShown());
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::On_Command_Workspace(wxCommandEvent &event)
{
m_pWKSP->On_Command(event);
}
void CSAGA_Frame::On_Command_Workspace_UI(wxUpdateUIEvent &event)
{
m_pWKSP->On_Command_UI(event);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Command_Module(wxCommandEvent &event)
{
m_pWKSP->On_Command_Module(event);
}
void CSAGA_Frame::On_Command_Module_UI(wxUpdateUIEvent &event)
{
m_pWKSP->On_Command_UI_Module(event);
}
//---------------------------------------------------------
void CSAGA_Frame::On_Command_Child(wxCommandEvent &event)
{
wxMDIChildFrame *pChild;
if( (pChild = GetActiveChild()) != NULL )
{
pChild->AddPendingEvent(event);
}
}
void CSAGA_Frame::On_Command_Child_UI(wxUpdateUIEvent &event)
{
CVIEW_Base *pChild;
if( (pChild = wxDynamicCast(GetActiveChild(), CVIEW_Base)) != NULL )
{
pChild->On_Command_UI(event);
}
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void CSAGA_Frame::Show_Tips(bool bShow)
{
bool bTip;
long iTip;
wxFileName fTip(g_pSAGA->Get_App_Path(), wxT("saga_gui"), wxT("tip"));
wxTipProvider *pTip;
bTip = CONFIG_Read(wxT("/TIPS"), wxT("ATSTART"), bTip) ? bTip : true;
if( bShow || (bTip && fTip.FileExists()) )
{
iTip = CONFIG_Read(wxT("/TIPS"), wxT("CURRENT"), iTip) ? iTip : 0;
pTip = wxCreateFileTipProvider(fTip.GetFullPath(), iTip);
bTip = wxShowTip(this, pTip, bTip);
iTip = pTip->GetCurrentTip();
CONFIG_Write(wxT("/TIPS"), wxT("ATSTART"), bTip);
CONFIG_Write(wxT("/TIPS"), wxT("CURRENT"), iTip);
delete(pTip);
}
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool CSAGA_Frame::Process_Get_Okay(bool bBlink)
{
static bool s_bBlink = false;
if( bBlink )
{
ProgressBar_Set_Position((s_bBlink = !s_bBlink) == true ? 100 : 0);
}
return( g_pSAGA->Process_Get_Okay() );
}
//---------------------------------------------------------
bool CSAGA_Frame::Process_Set_Okay(bool bOkay)
{
StatusBar_Set_Text(LNG("[VAL] ready"));
ProgressBar_Set_Position(0);
g_pSAGA->Process_Set_Okay(bOkay);
return( bOkay );
}
//---------------------------------------------------------
bool CSAGA_Frame::ProgressBar_Set_Position(int Position)
{
if( Position < 0 )
{
Position = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -