move wxGet{Colour,Font}FromUser() out of utilscmn.cpp so they don't have to be in every app that links statically
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -105,4 +105,64 @@ bool wxColourData::FromString(const wxString& str)
|
|||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if wxUSE_COLOURDLG
|
||||||
|
|
||||||
|
#include "wx/colordlg.h"
|
||||||
|
|
||||||
|
wxColour wxGetColourFromUser(wxWindow *parent,
|
||||||
|
const wxColour& colInit,
|
||||||
|
const wxString& caption,
|
||||||
|
wxColourData *ptrData)
|
||||||
|
{
|
||||||
|
// contains serialized representation of wxColourData used the last time
|
||||||
|
// the dialog was shown: we want to reuse it the next time in order to show
|
||||||
|
// the same custom colours to the user (and we can't just have static
|
||||||
|
// wxColourData itself because it's a GUI object and so should be destroyed
|
||||||
|
// before GUI shutdown and doing it during static cleanup is too late)
|
||||||
|
static wxString s_strColourData;
|
||||||
|
|
||||||
|
wxColourData data;
|
||||||
|
if ( !ptrData )
|
||||||
|
{
|
||||||
|
ptrData = &data;
|
||||||
|
if ( !s_strColourData.empty() )
|
||||||
|
{
|
||||||
|
if ( !data.FromString(s_strColourData) )
|
||||||
|
{
|
||||||
|
wxFAIL_MSG( "bug in wxColourData::FromString()?" );
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
// we don't get back the "choose full" flag value from the native
|
||||||
|
// dialog and so we can't preserve it between runs, so we decide to
|
||||||
|
// always use it as it seems better than not using it (user can
|
||||||
|
// just ignore the extra controls in the dialog but having to click
|
||||||
|
// a button each time to show them would be very annoying
|
||||||
|
data.SetChooseFull(true);
|
||||||
|
#endif // __WXMSW__
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( colInit.IsOk() )
|
||||||
|
{
|
||||||
|
ptrData->SetColour(colInit);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxColour colRet;
|
||||||
|
wxColourDialog dialog(parent, ptrData);
|
||||||
|
if (!caption.empty())
|
||||||
|
dialog.SetTitle(caption);
|
||||||
|
if ( dialog.ShowModal() == wxID_OK )
|
||||||
|
{
|
||||||
|
*ptrData = dialog.GetColourData();
|
||||||
|
colRet = ptrData->GetColour();
|
||||||
|
s_strColourData = ptrData->ToString();
|
||||||
|
}
|
||||||
|
//else: leave colRet invalid
|
||||||
|
|
||||||
|
return colRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_COLOURDLG
|
||||||
#endif // wxUSE_COLOURDLG || wxUSE_COLOURPICKERCTRL
|
#endif // wxUSE_COLOURDLG || wxUSE_COLOURPICKERCTRL
|
||||||
|
@@ -67,3 +67,29 @@ wxFontData& wxFontData::operator=(const wxFontData& data)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif // wxUSE_FONTDLG || wxUSE_FONTPICKERCTRL
|
#endif // wxUSE_FONTDLG || wxUSE_FONTPICKERCTRL
|
||||||
|
|
||||||
|
#if wxUSE_FONTDLG
|
||||||
|
|
||||||
|
#include "wx/fontdlg.h"
|
||||||
|
|
||||||
|
wxFont wxGetFontFromUser(wxWindow *parent, const wxFont& fontInit, const wxString& caption)
|
||||||
|
{
|
||||||
|
wxFontData data;
|
||||||
|
if ( fontInit.IsOk() )
|
||||||
|
{
|
||||||
|
data.SetInitialFont(fontInit);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxFont fontRet;
|
||||||
|
wxFontDialog dialog(parent, data);
|
||||||
|
if (!caption.empty())
|
||||||
|
dialog.SetTitle(caption);
|
||||||
|
if ( dialog.ShowModal() == wxID_OK )
|
||||||
|
{
|
||||||
|
fontRet = dialog.GetFontData().GetChosenFont();
|
||||||
|
}
|
||||||
|
//else: leave it invalid
|
||||||
|
|
||||||
|
return fontRet;
|
||||||
|
}
|
||||||
|
#endif // wxUSE_FONTDLG
|
||||||
|
@@ -70,8 +70,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_GUI
|
#if wxUSE_GUI
|
||||||
#include "wx/colordlg.h"
|
|
||||||
#include "wx/fontdlg.h"
|
|
||||||
#include "wx/notebook.h"
|
#include "wx/notebook.h"
|
||||||
#include "wx/statusbr.h"
|
#include "wx/statusbr.h"
|
||||||
#endif // wxUSE_GUI
|
#endif // wxUSE_GUI
|
||||||
@@ -1483,89 +1481,6 @@ wxString wxGetPasswordFromUser(const wxString& message,
|
|||||||
|
|
||||||
#endif // wxUSE_TEXTDLG
|
#endif // wxUSE_TEXTDLG
|
||||||
|
|
||||||
#if wxUSE_COLOURDLG
|
|
||||||
|
|
||||||
wxColour wxGetColourFromUser(wxWindow *parent,
|
|
||||||
const wxColour& colInit,
|
|
||||||
const wxString& caption,
|
|
||||||
wxColourData *ptrData)
|
|
||||||
{
|
|
||||||
// contains serialized representation of wxColourData used the last time
|
|
||||||
// the dialog was shown: we want to reuse it the next time in order to show
|
|
||||||
// the same custom colours to the user (and we can't just have static
|
|
||||||
// wxColourData itself because it's a GUI object and so should be destroyed
|
|
||||||
// before GUI shutdown and doing it during static cleanup is too late)
|
|
||||||
static wxString s_strColourData;
|
|
||||||
|
|
||||||
wxColourData data;
|
|
||||||
if ( !ptrData )
|
|
||||||
{
|
|
||||||
ptrData = &data;
|
|
||||||
if ( !s_strColourData.empty() )
|
|
||||||
{
|
|
||||||
if ( !data.FromString(s_strColourData) )
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "bug in wxColourData::FromString()?" );
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
|
||||||
// we don't get back the "choose full" flag value from the native
|
|
||||||
// dialog and so we can't preserve it between runs, so we decide to
|
|
||||||
// always use it as it seems better than not using it (user can
|
|
||||||
// just ignore the extra controls in the dialog but having to click
|
|
||||||
// a button each time to show them would be very annoying
|
|
||||||
data.SetChooseFull(true);
|
|
||||||
#endif // __WXMSW__
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( colInit.IsOk() )
|
|
||||||
{
|
|
||||||
ptrData->SetColour(colInit);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxColour colRet;
|
|
||||||
wxColourDialog dialog(parent, ptrData);
|
|
||||||
if (!caption.empty())
|
|
||||||
dialog.SetTitle(caption);
|
|
||||||
if ( dialog.ShowModal() == wxID_OK )
|
|
||||||
{
|
|
||||||
*ptrData = dialog.GetColourData();
|
|
||||||
colRet = ptrData->GetColour();
|
|
||||||
s_strColourData = ptrData->ToString();
|
|
||||||
}
|
|
||||||
//else: leave colRet invalid
|
|
||||||
|
|
||||||
return colRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_COLOURDLG
|
|
||||||
|
|
||||||
#if wxUSE_FONTDLG
|
|
||||||
|
|
||||||
wxFont wxGetFontFromUser(wxWindow *parent, const wxFont& fontInit, const wxString& caption)
|
|
||||||
{
|
|
||||||
wxFontData data;
|
|
||||||
if ( fontInit.IsOk() )
|
|
||||||
{
|
|
||||||
data.SetInitialFont(fontInit);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxFont fontRet;
|
|
||||||
wxFontDialog dialog(parent, data);
|
|
||||||
if (!caption.empty())
|
|
||||||
dialog.SetTitle(caption);
|
|
||||||
if ( dialog.ShowModal() == wxID_OK )
|
|
||||||
{
|
|
||||||
fontRet = dialog.GetFontData().GetChosenFont();
|
|
||||||
}
|
|
||||||
//else: leave it invalid
|
|
||||||
|
|
||||||
return fontRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_FONTDLG
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxSafeYield and supporting functions
|
// wxSafeYield and supporting functions
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user