📄 res_dialogs.cpp
字号:
Palettes[SG_COLORS_YELLOW_RED] = LNG("yellow > red");
Palettes[SG_COLORS_YELLOW_GREEN] = LNG("yellow > green");
Palettes[SG_COLORS_YELLOW_BLUE] = LNG("yellow > blue");
Palettes[SG_COLORS_RED_GREEN] = LNG("red > green");
Palettes[SG_COLORS_RED_BLUE] = LNG("red > blue");
Palettes[SG_COLORS_GREEN_BLUE] = LNG("green > blue");
Palettes[SG_COLORS_RED_GREY_BLUE] = LNG("red > grey > blue");
Palettes[SG_COLORS_RED_GREY_GREEN] = LNG("red > grey > green");
Palettes[SG_COLORS_GREEN_GREY_BLUE] = LNG("green > grey > blue");
Palettes[SG_COLORS_RED_GREEN_BLUE] = LNG("red > green > blue");
Palettes[SG_COLORS_RED_BLUE_GREEN] = LNG("red > blue > green");
Palettes[SG_COLORS_GREEN_RED_BLUE] = LNG("green > red > blue");
Palettes[SG_COLORS_RAINBOW] = LNG("Rainbow");
Palettes[SG_COLORS_NEON] = LNG("Neon");
wxSingleChoiceDialog dlg(
MDI_Get_Top_Window(),
wxT(""),
LNG("[CAP] Preset Selection"),
SG_COLORS_COUNT, Palettes
);
if( dlg.ShowModal() == wxID_OK )
{
Palette = dlg.GetSelection();
return( true );
}
return( false );
}
//---------------------------------------------------------
bool DLG_Color(long &_Colour)
{
wxColour Colour(SG_GET_R(_Colour), SG_GET_G(_Colour), SG_GET_B(_Colour));
wxColourDialog dlg(MDI_Get_Top_Window());
dlg.GetColourData().SetColour(Colour);
if( dlg.ShowModal() == wxID_OK )
{
Colour = dlg.GetColourData().GetColour();
_Colour = Get_Color_asInt(Colour);
return( true );
}
return( false );
}
//---------------------------------------------------------
bool DLG_Font(wxFont *pFont, long &_Colour)
{
wxColour Colour(SG_GET_R(_Colour), SG_GET_G(_Colour), SG_GET_B(_Colour));
wxFontDialog dlg(MDI_Get_Top_Window());
dlg.GetFontData().SetInitialFont(*pFont);
dlg.GetFontData().SetColour(Colour);
if( dlg.ShowModal() == wxID_OK )
{
*pFont = dlg.GetFontData().GetChosenFont();
Colour = dlg.GetFontData().GetColour();
_Colour = Get_Color_asInt(Colour);
return( true );
}
return( false );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool DLG_Get_Number(double &Number, const wxChar *Caption, const wxChar *Text)
{
wxTextEntryDialog dlg(MDI_Get_Top_Window(), Text, Caption, wxString::Format(wxT("%f"), Number));
return( dlg.ShowModal() == wxID_OK && dlg.GetValue().ToDouble(&Number) );
}
bool DLG_Get_Number(double &Number)
{
return( DLG_Get_Number(Number, LNG("[CAP] Input"), LNG("[DLG] Please enter a numeric value:")) );
}
//---------------------------------------------------------
bool DLG_Get_Number(int &Number, const wxChar *Caption, const wxChar *Text)
{
long lValue;
wxTextEntryDialog dlg(MDI_Get_Top_Window(), Text, Caption, wxString::Format(wxT("%d"), Number));
if( dlg.ShowModal() == wxID_OK && dlg.GetValue().ToLong(&lValue) )
{
Number = lValue;
return( true );
}
return( false );
}
bool DLG_Get_Number(int &Number)
{
return( DLG_Get_Number(Number, LNG("[CAP] Input"), LNG("[DLG] Please enter a numeric value:")) );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool DLG_Directory(wxString &Directory, const wxChar *Caption, const wxChar *def_Dir)
{
wxDirDialog dlg(MDI_Get_Top_Window(), Caption, def_Dir);
if( dlg.ShowModal() == wxID_OK )
{
Directory = dlg.GetPath();
return( true );
}
return( false );
}
bool DLG_Directory(wxString &Directory, const wxChar *Caption)
{
return( DLG_Directory(Directory, Caption, SG_File_Get_Path(Directory)) );
}
//---------------------------------------------------------
bool DLG_Save(wxString &File_Path, const wxChar *Caption, const wxChar *def_Dir, const wxChar *def_File, const wxChar *Filter)
{
wxFileDialog dlg(MDI_Get_Top_Window(), Caption, def_Dir, def_File, Filter, wxSAVE|wxOVERWRITE_PROMPT);
if( dlg.ShowModal() == wxID_OK )
{
File_Path = dlg.GetPath();
return( true );
}
return( false );
}
bool DLG_Save(wxString &File_Path, int ID_DLG)
{
wxString def_Dir;
CONFIG_Read(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), def_Dir);
if( DLG_Save(File_Path, DLG_Get_FILE_Caption(ID_DLG), def_Dir, wxT(""), DLG_Get_FILE_Filter(ID_DLG)) )
{
CONFIG_Write(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), SG_File_Get_Path(File_Path));
return( true );
}
return( false );
}
bool DLG_Save(wxString &File_Path, const wxChar *Caption, const wxChar *Filter)
{
return( DLG_Save(File_Path, Caption, SG_File_Get_Path(File_Path), SG_File_Get_Name(File_Path, true), Filter) );
}
//---------------------------------------------------------
bool DLG_Open(wxString &File_Path, const wxChar *Caption, const wxChar *def_Dir, const wxChar *def_File, const wxChar *Filter)
{
wxFileDialog dlg(MDI_Get_Top_Window(), Caption, def_Dir, def_File, Filter, wxOPEN|wxFILE_MUST_EXIST);
if( dlg.ShowModal() == wxID_OK )
{
File_Path = dlg.GetPath();
return( true );
}
return( false );
}
bool DLG_Open(wxString &File_Path, int ID_DLG)
{
wxString def_Dir;
CONFIG_Read(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), def_Dir);
if( DLG_Open(File_Path, DLG_Get_FILE_Caption(ID_DLG), def_Dir, wxT(""), DLG_Get_FILE_Filter(ID_DLG)) )
{
CONFIG_Write(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), SG_File_Get_Path(File_Path));
return( true );
}
return( false );
}
bool DLG_Open(wxString &File_Path, const wxChar *Caption, const wxChar *Filter)
{
return( DLG_Open(File_Path, Caption, SG_File_Get_Path(File_Path), SG_File_Get_Name(File_Path, true), Filter) );
}
//---------------------------------------------------------
bool DLG_Open(wxArrayString &File_Paths, const wxChar *Caption, const wxChar *def_Dir, const wxChar *Filter)
{
wxFileDialog dlg(MDI_Get_Top_Window(), Caption, def_Dir, wxT(""), Filter, wxOPEN|wxFILE_MUST_EXIST|wxMULTIPLE);
if( dlg.ShowModal() == wxID_OK )
{
dlg.GetPaths(File_Paths);
return( File_Paths.GetCount() > 0 );
}
return( false );
}
bool DLG_Open(wxArrayString &File_Paths, int ID_DLG)
{
wxString def_Dir;
CONFIG_Read(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), def_Dir);
if( DLG_Open(File_Paths, DLG_Get_FILE_Caption(ID_DLG), def_Dir, DLG_Get_FILE_Filter(ID_DLG)) )
{
CONFIG_Write(CONFIG_GROUP_FILE_DLG, DLG_Get_FILE_Config(ID_DLG), SG_File_Get_Path(File_Paths[0]));
return( true );
}
return( false );
}
bool DLG_Open(wxArrayString &File_Paths, const wxChar *Caption, const wxChar *Filter)
{
return( DLG_Open(File_Paths, Caption, wxT(""), Filter) );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool DLG_Image_Save(wxString &File_Path, int &Type, const wxChar *def_Dir, const wxChar *def_File)
{
static int Filter_Index = 3;
wxFileDialog dlg(
MDI_Get_Top_Window(), LNG("[CAP] Save As Image"), def_Dir, def_File, wxString::Format(
wxT("%s|*.bmp|")
wxT("%s|*.jpg;*.jif;*.jpeg|")
wxT("%s|*.tif;*.tiff|")
wxT("%s|*.png|")
wxT("%s|*.gif|")
wxT("%s|*.pcx"),
LNG("Windows or OS/2 Bitmap (*.bmp)"),
LNG("JPEG - JFIF Compliant (*.jpg, *.jif, *.jpeg)"),
LNG("Tagged Image File Format (*.tif, *.tiff)"),
LNG("Portable Network Graphics (*.png)"),
LNG("CompuServe Graphics Interchange (*.gif)"),
LNG("Zsoft Paintbrush (*.pcx)")
), wxSAVE|wxOVERWRITE_PROMPT
);
dlg.SetFilterIndex(Filter_Index);
if( dlg.ShowModal() == wxID_OK )
{
File_Path = dlg.GetPath();
Filter_Index = dlg.GetFilterIndex();
switch( Filter_Index )
{
default:
case 0: Type = wxBITMAP_TYPE_BMP; break;
case 1: Type = wxBITMAP_TYPE_JPEG; break;
case 2: Type = wxBITMAP_TYPE_TIF; break;
case 3: Type = wxBITMAP_TYPE_PNG; break;
case 4: Type = wxBITMAP_TYPE_GIF; break;
case 5: Type = wxBITMAP_TYPE_PCX; break;
case 6: Type = wxBITMAP_TYPE_PNM; break;
}
return( true );
}
return( false );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
void DLG_Message_Show(const wxChar *Message, const wxChar *Caption)
{
wxMessageDialog dlg(MDI_Get_Top_Window(), Message, Caption, wxOK);
dlg.ShowModal();
}
void DLG_Message_Show(int ID_DLG)
{
DLG_Message_Show(DLG_Get_Text(ID_DLG), DLG_Get_Caption(ID_DLG));
}
void DLG_Message_Show(const wxChar *Message)
{
DLG_Message_Show(Message, DLG_Get_Caption(-1));
}
//---------------------------------------------------------
int DLG_Message_Show_Error(const wxChar *Message, const wxChar *Caption)
{
wxMessageDialog dlg(MDI_Get_Top_Window(), Message, Caption, wxOK|wxCANCEL|wxICON_ERROR);
switch( dlg.ShowModal() )
{
case wxID_OK: default:
return( 1 );
case wxID_CANCEL:
return( 0 );
}
}
int DLG_Message_Show_Error(int ID_DLG)
{
return( DLG_Message_Show_Error(DLG_Get_Text(ID_DLG), DLG_Get_Caption(ID_DLG)) );
}
//---------------------------------------------------------
bool DLG_Message_Confirm(const wxChar *Message, const wxChar *Caption)
{
wxMessageDialog dlg(MDI_Get_Top_Window(), Message, Caption, wxYES_NO|wxICON_QUESTION);
return( dlg.ShowModal() == wxID_YES );
}
bool DLG_Message_Confirm(int ID_DLG)
{
return( DLG_Message_Confirm(DLG_Get_Text(ID_DLG), DLG_Get_Caption(ID_DLG)) );
}
//---------------------------------------------------------
int DLG_Message_YesNoCancel(const wxChar *Message, const wxChar *Caption)
{
wxMessageDialog dlg(MDI_Get_Top_Window(), Message, Caption, wxYES|wxNO|wxCANCEL|wxICON_QUESTION);
switch( dlg.ShowModal() )
{
case wxID_YES: default:
return( 0 );
case wxID_NO:
return( 1 );
case wxID_CANCEL:
return( 2 );
}
}
int DLG_Message_YesNoCancel(int ID_DLG)
{
return( DLG_Message_YesNoCancel(DLG_Get_Text(ID_DLG), DLG_Get_Caption(ID_DLG)) );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
int DLG_Maps_Add(void)
{
bool bOk;
int i;
wxString *Maps;
if( g_pMaps )
{
if( g_pMaps->Get_Count() <= 0 )
{
return( 0 );
}
else
{
Maps = new wxString[g_pMaps->Get_Count() + 1];
for(i=0; i<g_pMaps->Get_Count(); i++)
{
Maps[i] = g_pMaps->Get_Map(i)->Get_Name();
}
Maps[i] = LNG("[VAL] New");
wxSingleChoiceDialog dlg(
MDI_Get_Top_Window(),
LNG("[CAP] Map Selection"),
LNG("[DLG] Add layer to selected map"),
g_pMaps->Get_Count() + 1,
Maps
);
dlg.SetSelection(g_pMaps->Get_Count());
bOk = dlg.ShowModal() == wxID_OK;
delete[](Maps);
if( bOk )
{
return( dlg.GetSelection() );
}
}
}
return( -1 );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -