]> git.saurik.com Git - wxWidgets.git/blobdiff - src/richtext/richtextsymboldlg.cpp
Added wxRICHTEXT_SETSTYLE_RESET SetStyleEx() flag to allow for clearing attributes...
[wxWidgets.git] / src / richtext / richtextsymboldlg.cpp
index bfb183679db08bf52d0cf2b4fbaae8e78c97fc3c..183638b5b32d223b2b30421649d23f7331939340 100644 (file)
@@ -1,36 +1,39 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        richtextsymboldlg.cpp
+// Name:        src/richtext/richtextsymboldlg.cpp
 // Purpose:
 // Author:      Julian Smart
 // Modified by:
 // Created:     10/5/2006 3:11:58 PM
 // Purpose:
 // Author:      Julian Smart
 // Modified by:
 // Created:     10/5/2006 3:11:58 PM
-// RCS-ID:
+// RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Copyright:   (c) Julian Smart
-// Licence:
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
 #endif
 
+#if wxUSE_RICHTEXT
+
+#include "wx/richtext/richtextsymboldlg.h"
+
 #ifndef WX_PRECOMP
 #ifndef WX_PRECOMP
-#include "wx/wx.h"
+    #include "wx/sizer.h"
+    #include "wx/stattext.h"
+    #include "wx/combobox.h"
+    #include "wx/button.h"
+    #include "wx/settings.h"
+    #include "wx/icon.h"
+    #include "wx/listbox.h"
 #endif
 
 #endif
 
-////@begin includes
-////@end includes
-
-#include "wx/fontenum.h"
 #include "wx/dcbuffer.h"
 #include "wx/dcbuffer.h"
-#include "wx/settings.h"
 
 
-#include "../../include/wx/richtext/richtextsymboldlg.h"
-
-////@begin XPM images
-////@end XPM images
+// Only for cached font name
+#include "wx/richtext/richtextctrl.h"
 
 /* Microsoft Unicode subset numbering
  */
 
 /* Microsoft Unicode subset numbering
  */
@@ -111,6 +114,7 @@ typedef enum
 } wxUnicodeSubsetCodes;
 
 /* Unicode subsets */
 } wxUnicodeSubsetCodes;
 
 /* Unicode subsets */
+#ifdef __UNICODE__
 
 static struct
 {
 
 static struct
 {
@@ -261,6 +265,8 @@ static struct
     U_SPECIALS, wxT("Specials") }
 };
 
     U_SPECIALS, wxT("Specials") }
 };
 
+#endif // __UNICODE__
+
 #if 0
 // Not yet used, but could be used to test under Win32 whether this subset is available
 // for the given font. The Win32 function is allegedly not accurate, however.
 #if 0
 // Not yet used, but could be used to test under Win32 whether this subset is available
 // for the given font. The Win32 function is allegedly not accurate, however.
@@ -270,6 +276,8 @@ bool wxSubsetValidForFont(int subsetIndex, FONTSIGNATURE *fontSig)
 }
 #endif
 
 }
 #endif
 
+bool wxSymbolPickerDialog::sm_showToolTips = false;
+
 /*!
  * wxSymbolPickerDialog type definition
  */
 /*!
  * wxSymbolPickerDialog type definition
  */
@@ -294,7 +302,7 @@ BEGIN_EVENT_TABLE( wxSymbolPickerDialog, wxDialog )
     EVT_COMBOBOX( ID_SYMBOLPICKERDIALOG_FROM, wxSymbolPickerDialog::OnFromUnicodeSelected )
 #endif
 
     EVT_COMBOBOX( ID_SYMBOLPICKERDIALOG_FROM, wxSymbolPickerDialog::OnFromUnicodeSelected )
 #endif
 
-#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXOS2__) || defined(__WXMGL__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || defined(__WXX11__) || defined(__WXPALMOS__)
+#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMGL__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || defined(__WXX11__) || defined(__WXPALMOS__)
     EVT_UPDATE_UI( wxID_OK, wxSymbolPickerDialog::OnOkUpdate )
 #endif
 
     EVT_UPDATE_UI( wxID_OK, wxSymbolPickerDialog::OnOkUpdate )
 #endif
 
@@ -392,7 +400,10 @@ void wxSymbolPickerDialog::CreateControls()
     itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
 
     wxString* m_fontCtrlStrings = NULL;
     itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
 
     wxString* m_fontCtrlStrings = NULL;
-    m_fontCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_FONT, _T(""), wxDefaultPosition, wxSize(240, -1), 0, m_fontCtrlStrings, wxCB_READONLY );
+    m_fontCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_FONT, wxEmptyString, wxDefaultPosition, wxSize(240, -1), 0, m_fontCtrlStrings, wxCB_READONLY );
+    m_fontCtrl->SetHelpText(_("The font from which to take the symbol."));
+    if (ShowToolTips())
+        m_fontCtrl->SetToolTip(_("The font from which to take the symbol."));
     itemBoxSizer5->Add(m_fontCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
     itemBoxSizer5->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
     itemBoxSizer5->Add(m_fontCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
     itemBoxSizer5->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
@@ -405,7 +416,7 @@ void wxSymbolPickerDialog::CreateControls()
 
 #if defined(__UNICODE__)
     wxString* m_subsetCtrlStrings = NULL;
 
 #if defined(__UNICODE__)
     wxString* m_subsetCtrlStrings = NULL;
-    m_subsetCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_SUBSET, _T(""), wxDefaultPosition, wxDefaultSize, 0, m_subsetCtrlStrings, wxCB_READONLY );
+    m_subsetCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_SUBSET, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, m_subsetCtrlStrings, wxCB_READONLY );
     m_subsetCtrl->SetHelpText(_("Shows a Unicode subset."));
     if (ShowToolTips())
         m_subsetCtrl->SetToolTip(_("Shows a Unicode subset."));
     m_subsetCtrl->SetHelpText(_("Shows a Unicode subset."));
     if (ShowToolTips())
         m_subsetCtrl->SetToolTip(_("Shows a Unicode subset."));
@@ -427,7 +438,10 @@ void wxSymbolPickerDialog::CreateControls()
     wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Character code:"), wxDefaultPosition, wxDefaultSize, 0 );
     itemBoxSizer12->Add(itemStaticText15, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
 
     wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Character code:"), wxDefaultPosition, wxDefaultSize, 0 );
     itemBoxSizer12->Add(itemStaticText15, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
 
-    m_characterCodeCtrl = new wxTextCtrl( itemDialog1, ID_SYMBOLPICKERDIALOG_CHARACTERCODE, _T(""), wxDefaultPosition, wxSize(140, -1), wxTE_READONLY|wxTE_CENTRE );
+    m_characterCodeCtrl = new wxTextCtrl( itemDialog1, ID_SYMBOLPICKERDIALOG_CHARACTERCODE, wxEmptyString, wxDefaultPosition, wxSize(140, -1), wxTE_READONLY|wxTE_CENTRE );
+    m_characterCodeCtrl->SetHelpText(_("The character code."));
+    if (ShowToolTips())
+        m_characterCodeCtrl->SetToolTip(_("The character code."));
     itemBoxSizer12->Add(m_characterCodeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
     itemBoxSizer12->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
     itemBoxSizer12->Add(m_characterCodeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
     itemBoxSizer12->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
@@ -445,11 +459,14 @@ void wxSymbolPickerDialog::CreateControls()
     };
     m_fromUnicodeCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_FROM, _("ASCII"), wxDefaultPosition, wxDefaultSize, 2, m_fromUnicodeCtrlStrings, wxCB_READONLY );
     m_fromUnicodeCtrl->SetStringSelection(_("ASCII"));
     };
     m_fromUnicodeCtrl = new wxComboBox( itemDialog1, ID_SYMBOLPICKERDIALOG_FROM, _("ASCII"), wxDefaultPosition, wxDefaultSize, 2, m_fromUnicodeCtrlStrings, wxCB_READONLY );
     m_fromUnicodeCtrl->SetStringSelection(_("ASCII"));
+    m_fromUnicodeCtrl->SetHelpText(_("The range to show."));
+    if (ShowToolTips())
+        m_fromUnicodeCtrl->SetToolTip(_("The range to show."));
     itemBoxSizer12->Add(m_fromUnicodeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
 #endif
 
     itemBoxSizer12->Add(m_fromUnicodeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
 
 #endif
 
-#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXOS2__) || defined(__WXMGL__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || defined(__WXX11__) || defined(__WXPALMOS__)
+#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMGL__) || defined(__WXMOTIF__) || defined(__WXCOCOA__) || defined(__WXX11__) || defined(__WXPALMOS__)
     wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
     itemBoxSizer3->Add(itemBoxSizer20, 0, wxGROW, 5);
 
     wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
     itemBoxSizer3->Add(itemBoxSizer20, 0, wxGROW, 5);
 
@@ -502,16 +519,14 @@ bool wxSymbolPickerDialog::TransferDataToWindow()
 
     if (m_fontCtrl->GetCount() == 0)
     {
 
     if (m_fontCtrl->GetCount() == 0)
     {
-        wxFontEnumerator enumerator;
-        enumerator.EnumerateFacenames();
-        wxArrayString faceNames = enumerator.GetFacenames();
+        wxArrayString faceNames = wxRichTextCtrl::GetAvailableFontNames();
         faceNames.Sort();
 
         faceNames.Insert(_("(Normal text)"), 0);
         m_fontCtrl->Append(faceNames);
     }
 
         faceNames.Sort();
 
         faceNames.Insert(_("(Normal text)"), 0);
         m_fontCtrl->Append(faceNames);
     }
 
-    if (m_fontName.IsEmpty())
+    if (m_fontName.empty())
         m_fontCtrl->SetSelection(0);
     else
     {
         m_fontCtrl->SetSelection(0);
     else
     {
@@ -521,7 +536,7 @@ bool wxSymbolPickerDialog::TransferDataToWindow()
             m_fontCtrl->SetSelection(0);
     }
 
             m_fontCtrl->SetSelection(0);
     }
 
-    if (!m_symbol.IsEmpty())
+    if (!m_symbol.empty())
     {
         int sel = (int) m_symbol[0];
         m_symbolsCtrl->SetSelection(sel);
     {
         int sel = (int) m_symbol[0];
         m_symbolsCtrl->SetSelection(sel);
@@ -551,12 +566,12 @@ void wxSymbolPickerDialog::UpdateSymbolDisplay(bool updateSymbolList, bool showA
 {
     wxFont font;
     wxString fontNameToUse;
 {
     wxFont font;
     wxString fontNameToUse;
-    if (m_fontName.IsEmpty())
+    if (m_fontName.empty())
         fontNameToUse = m_normalTextFontName;
     else
         fontNameToUse = m_fontName;
 
         fontNameToUse = m_normalTextFontName;
     else
         fontNameToUse = m_fontName;
 
-    if (!fontNameToUse.IsEmpty())
+    if (!fontNameToUse.empty())
     {
         font = wxFont(14, wxDEFAULT, wxNORMAL, wxNORMAL, false, fontNameToUse);
     }
     {
         font = wxFont(14, wxDEFAULT, wxNORMAL, wxNORMAL, false, fontNameToUse);
     }
@@ -568,7 +583,7 @@ void wxSymbolPickerDialog::UpdateSymbolDisplay(bool updateSymbolList, bool showA
         m_symbolsCtrl->SetFont(font);
     }
 
         m_symbolsCtrl->SetFont(font);
     }
 
-    if (!m_symbol.IsEmpty())
+    if (!m_symbol.empty())
     {
         m_symbolStaticCtrl->SetFont(font);
         m_symbolStaticCtrl->SetLabel(m_symbol);
     {
         m_symbolStaticCtrl->SetFont(font);
         m_symbolStaticCtrl->SetLabel(m_symbol);
@@ -621,7 +636,7 @@ void wxSymbolPickerDialog::OnSymbolSelected( wxCommandEvent& event )
         return;
 
     int sel = event.GetSelection();
         return;
 
     int sel = event.GetSelection();
-    if (sel == -1)
+    if (sel == wxNOT_FOUND)
         m_symbol = wxEmptyString;
     else
     {
         m_symbol = wxEmptyString;
     else
     {
@@ -699,22 +714,13 @@ void wxSymbolPickerDialog::SetUnicodeMode(bool unicodeMode)
 /// Get the selected symbol character
 int wxSymbolPickerDialog::GetSymbolChar() const
 {
 /// Get the selected symbol character
 int wxSymbolPickerDialog::GetSymbolChar() const
 {
-    if (m_symbol.IsEmpty())
+    if (m_symbol.empty())
         return -1;
     else
         return (int) m_symbol[0];
 }
 
 
         return -1;
     else
         return (int) m_symbol[0];
 }
 
 
-/*!
- * Should we show tooltips?
- */
-
-bool wxSymbolPickerDialog::ShowToolTips()
-{
-    return true;
-}
-
 /*!
  * Get bitmap resources
  */
 /*!
  * Get bitmap resources
  */
@@ -850,8 +856,9 @@ bool wxSymbolListCtrl::DoSetCurrent(int current)
         {
             // it is, indeed, only partly visible, so scroll it into view to
             // make it entirely visible
         {
             // it is, indeed, only partly visible, so scroll it into view to
             // make it entirely visible
-            while ( (size_t)lineNo == GetLastVisibleLine() &&
-                    ScrollToLine(GetVisibleBegin()+1) ) ;
+            while ( unsigned(lineNo) == GetLastVisibleLine() &&
+                    ScrollToLine(GetVisibleBegin()+1) )
+                ;
 
             // but in any case refresh it as even if it was only partly visible
             // before we need to redraw it entirely as its background changed
 
             // but in any case refresh it as even if it was only partly visible
             // before we need to redraw it entirely as its background changed
@@ -1228,7 +1235,7 @@ int wxSymbolListCtrl::HitTest(const wxPoint& pt)
 
     if (symbol >= m_minSymbolValue && symbol <= m_maxSymbolValue)
         return symbol;
 
     if (symbol >= m_minSymbolValue && symbol <= m_maxSymbolValue)
         return symbol;
-    else
+
     return -1;
 }
 
     return -1;
 }
 
@@ -1283,4 +1290,4 @@ wxSymbolListCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
     return wxListBox::GetClassDefaultAttributes(variant);
 }
 
     return wxListBox::GetClassDefaultAttributes(variant);
 }
 
-
+#endif // wxUSE_RICHTEXT