Merge branch 'dpi-stc' of https://github.com/MaartenBent/wxWidgets
Fix and improve DPI handling in wxStyledTextCtrl. Fix cursor size after DPI change. Enable handling DPI events in wxSTCPopupWindow and other popup windows (that do not inherit from wxTopLevelWindow). Some cleanup of STC example, and add option to select drawing technology. See https://github.com/wxWidgets/wxWidgets/pull/1885
This commit is contained in:
@@ -24,11 +24,6 @@
|
||||
//============================================================================
|
||||
|
||||
#define DEFAULT_LANGUAGE "<default>"
|
||||
|
||||
#define PAGE_COMMON _("Common")
|
||||
#define PAGE_LANGUAGES _("Languages")
|
||||
#define PAGE_STYLE_TYPES _("Style types")
|
||||
|
||||
#define STYLE_TYPES_COUNT 32
|
||||
|
||||
|
||||
@@ -47,7 +42,6 @@ enum {
|
||||
myID_REPLACENEXT,
|
||||
myID_BRACEMATCH,
|
||||
myID_GOTO,
|
||||
myID_PAGEACTIVE,
|
||||
myID_DISPLAYEOL,
|
||||
myID_INDENTGUIDE,
|
||||
myID_LINENUMBER,
|
||||
@@ -76,29 +70,18 @@ enum {
|
||||
myID_MULTIPLE_SELECTIONS,
|
||||
myID_MULTI_PASTE,
|
||||
myID_MULTIPLE_SELECTIONS_TYPING,
|
||||
myID_TECHNOLOGY_DEFAULT,
|
||||
myID_TECHNOLOGY_DIRECTWRITE,
|
||||
myID_CUSTOM_POPUP,
|
||||
myID_USECHARSET,
|
||||
myID_CHARSETANSI,
|
||||
myID_CHARSETMAC,
|
||||
myID_PAGEPREV,
|
||||
myID_PAGENEXT,
|
||||
myID_SELECTLINE,
|
||||
myID_EDIT_LAST = myID_SELECTLINE,
|
||||
myID_WINDOW_MINIMAL,
|
||||
|
||||
// other IDs
|
||||
myID_STATUSBAR,
|
||||
myID_TITLEBAR,
|
||||
myID_ABOUTTIMER,
|
||||
myID_UPDATETIMER,
|
||||
|
||||
// dialog find IDs
|
||||
myID_DLG_FIND_TEXT,
|
||||
|
||||
// preferences IDs
|
||||
myID_PREFS_LANGUAGE,
|
||||
myID_PREFS_STYLETYPE,
|
||||
myID_PREFS_KEYWORDS,
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -128,6 +128,8 @@ wxBEGIN_EVENT_TABLE (Edit, wxStyledTextCtrl)
|
||||
EVT_MENU(myID_MULTI_PASTE, Edit::OnMultiPaste)
|
||||
EVT_MENU(myID_MULTIPLE_SELECTIONS_TYPING, Edit::OnMultipleSelectionsTyping)
|
||||
EVT_MENU(myID_CUSTOM_POPUP, Edit::OnCustomPopup)
|
||||
EVT_MENU(myID_TECHNOLOGY_DEFAULT, Edit::OnTechnology)
|
||||
EVT_MENU(myID_TECHNOLOGY_DIRECTWRITE, Edit::OnTechnology)
|
||||
// stc
|
||||
EVT_STC_MARGINCLICK (wxID_ANY, Edit::OnMarginClick)
|
||||
EVT_STC_CHARADDED (wxID_ANY, Edit::OnCharAdded)
|
||||
@@ -196,7 +198,7 @@ Edit::Edit (wxWindow *parent, wxWindowID id,
|
||||
|
||||
// miscellaneous
|
||||
m_LineNrMargin = TextWidth (wxSTC_STYLE_LINENUMBER, "_999999");
|
||||
m_FoldingMargin = 16;
|
||||
m_FoldingMargin = FromDIP(16);
|
||||
CmdKeyClear (wxSTC_KEY_TAB, 0); // this is done by the menu accelerator key
|
||||
SetLayoutCache (wxSTC_CACHE_PAGE);
|
||||
UsePopUp(wxSTC_POPUP_ALL);
|
||||
@@ -480,6 +482,11 @@ void Edit::OnCustomPopup(wxCommandEvent& evt)
|
||||
UsePopUp(evt.IsChecked() ? wxSTC_POPUP_NEVER : wxSTC_POPUP_ALL);
|
||||
}
|
||||
|
||||
void Edit::OnTechnology(wxCommandEvent& event)
|
||||
{
|
||||
SetTechnology(event.GetId() == myID_TECHNOLOGY_DIRECTWRITE ? wxSTC_TECHNOLOGY_DIRECTWRITE : wxSTC_TECHNOLOGY_DEFAULT);
|
||||
}
|
||||
|
||||
//! misc
|
||||
void Edit::OnMarginClick (wxStyledTextEvent &event) {
|
||||
if (event.GetMargin() == 2) {
|
||||
|
@@ -102,6 +102,7 @@ public:
|
||||
void OnMultiPaste(wxCommandEvent& event);
|
||||
void OnMultipleSelectionsTyping(wxCommandEvent& event);
|
||||
void OnCustomPopup(wxCommandEvent& evt);
|
||||
void OnTechnology(wxCommandEvent& event);
|
||||
// stc
|
||||
void OnMarginClick (wxStyledTextEvent &event);
|
||||
void OnCharAdded (wxStyledTextEvent &event);
|
||||
@@ -115,7 +116,6 @@ public:
|
||||
//! language/lexer
|
||||
wxString DeterminePrefs (const wxString &filename);
|
||||
bool InitializePrefs (const wxString &filename);
|
||||
bool UserSettings (const wxString &filename);
|
||||
LanguageInfo const* GetLanguageInfo () {return m_language;}
|
||||
|
||||
//! load/save file
|
||||
|
@@ -63,12 +63,6 @@
|
||||
#define APP_LICENCE "wxWidgets"
|
||||
|
||||
#define APP_VERSION "0.1.alpha"
|
||||
#define APP_BUILD __DATE__
|
||||
|
||||
#define APP_WEBSITE "http://www.wxWidgets.org"
|
||||
#define APP_MAIL "mailto://???"
|
||||
|
||||
#define NONAME _("<untitled>")
|
||||
|
||||
class AppBook;
|
||||
|
||||
@@ -132,12 +126,8 @@ public:
|
||||
void OnClose (wxCloseEvent &event);
|
||||
void OnAbout (wxCommandEvent &event);
|
||||
void OnExit (wxCommandEvent &event);
|
||||
void OnTimerEvent (wxTimerEvent &event);
|
||||
//! file
|
||||
void OnFileNew (wxCommandEvent &event);
|
||||
void OnFileNewFrame (wxCommandEvent &event);
|
||||
void OnFileOpen (wxCommandEvent &event);
|
||||
void OnFileOpenFrame (wxCommandEvent &event);
|
||||
void OnFileSave (wxCommandEvent &event);
|
||||
void OnFileSaveAs (wxCommandEvent &event);
|
||||
void OnFileClose (wxCommandEvent &event);
|
||||
@@ -582,12 +572,17 @@ void AppFrame::CreateMenu ()
|
||||
menuExtra->AppendCheckItem(myID_MULTI_PASTE, _("Toggle multi-&paste"));
|
||||
menuExtra->AppendCheckItem(myID_MULTIPLE_SELECTIONS_TYPING, _("Toggle t&yping on multiple selections"));
|
||||
menuExtra->AppendSeparator();
|
||||
menuExtra->AppendCheckItem (myID_CUSTOM_POPUP, _("C&ustom popup menu"));
|
||||
#if defined(__WXMSW__) && wxUSE_GRAPHICS_DIRECT2D
|
||||
wxMenu* menuTechnology = new wxMenu;
|
||||
menuTechnology->AppendRadioItem(myID_TECHNOLOGY_DEFAULT, _("&Default"));
|
||||
menuTechnology->AppendRadioItem(myID_TECHNOLOGY_DIRECTWRITE, _("Direct&Write"));
|
||||
menuExtra->AppendSubMenu(menuTechnology, _("&Technology"));
|
||||
menuExtra->AppendSeparator();
|
||||
#endif
|
||||
menuExtra->AppendCheckItem (myID_CUSTOM_POPUP, _("C&ustom context menu"));
|
||||
|
||||
// Window menu
|
||||
wxMenu *menuWindow = new wxMenu;
|
||||
menuWindow->Append (myID_PAGEPREV, _("&Previous\tCtrl+Shift+Tab"));
|
||||
menuWindow->Append (myID_PAGENEXT, _("&Next\tCtrl+Tab"));
|
||||
menuWindow->Append(myID_WINDOW_MINIMAL, _("&Minimal editor"));
|
||||
|
||||
// Help menu
|
||||
@@ -763,7 +758,7 @@ public:
|
||||
}
|
||||
virtual bool SetFont(const wxFont& font) wxOVERRIDE
|
||||
{
|
||||
StyleSetFont(wxSTC_STYLE_DEFAULT, (wxFont&)font);
|
||||
StyleSetFont(wxSTC_STYLE_DEFAULT, font);
|
||||
return wxStyledTextCtrl::SetFont(font);
|
||||
}
|
||||
void SetLexerXml()
|
||||
@@ -823,7 +818,7 @@ public:
|
||||
MinimalEditorFrame() : wxFrame(NULL, wxID_ANY, _("Minimal Editor"))
|
||||
{
|
||||
MinimalEditor* editor = new MinimalEditor(this);
|
||||
editor->SetFont(wxSystemSettings::GetFont(wxSYS_ANSI_FIXED_FONT));
|
||||
editor->SetFont(wxFontInfo().Family(wxFONTFAMILY_TELETYPE));
|
||||
wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
sizer->Add(editor, 1, wxEXPAND);
|
||||
SetSizer(sizer);
|
||||
|
Reference in New Issue
Block a user