⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proplist.cpp

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
bool wxRealListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  if (wxStrlen(view->GetValueText()->GetValue()) == 0)    return false;  wxString value(view->GetValueText()->GetValue());  float f = (float)wxAtof(value.GetData());  property->GetValue() = f;  return true;}bool wxRealListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetConfirmButton())    view->GetConfirmButton()->Enable();  if (view->GetCancelButton())    view->GetCancelButton()->Enable();  if (view->GetEditButton())    view->GetEditButton()->Disable();  if (view->GetValueText())    view->GetValueText()->Enable();  return true;}////// Integer validator///IMPLEMENT_DYNAMIC_CLASS(wxIntegerListValidator, wxPropertyListValidator)bool wxIntegerListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow){  if (m_integerMin == 0 && m_integerMax == 0)    return true;  if (!view->GetValueText())    return false;  wxString value(view->GetValueText()->GetValue());  long val = 0;  if (!StringToLong(WXSTRINGCAST value, &val))  {    wxChar buf[200];    wxSprintf(buf, wxT("Value %s is not a valid integer!"), value.GetData());    wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);    return false;  }  if (val < m_integerMin || val > m_integerMax)  {    wxChar buf[200];    wxSprintf(buf, wxT("Value must be an integer between %ld and %ld!"), m_integerMin, m_integerMax);    wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);    return false;  }  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxIntegerListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  if (wxStrlen(view->GetValueText()->GetValue()) == 0)    return false;  wxString value(view->GetValueText()->GetValue());  long val = (long)wxAtoi(value.GetData());  property->GetValue() = (long)val;  return true;}bool wxIntegerListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetConfirmButton())    view->GetConfirmButton()->Enable();  if (view->GetCancelButton())    view->GetCancelButton()->Enable();  if (view->GetEditButton())    view->GetEditButton()->Disable();  if (view->GetValueText())    view->GetValueText()->Enable();  return true;}////// boolean validator///IMPLEMENT_DYNAMIC_CLASS(wxBoolListValidator, wxPropertyListValidator)bool wxBoolListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow){  if (!view->GetValueText())    return false;  wxString value(view->GetValueText()->GetValue());  if (value != wxT("True") && value != wxT("False"))  {    wxMessageBox(wxT("Value must be True or False!"), wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);    return false;  }  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxBoolListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  if (wxStrlen(view->GetValueText()->GetValue()) == 0)    return false;  wxString value(view->GetValueText()->GetValue());  bool boolValue = (value == wxT("True"));  property->GetValue() = boolValue;  return true;}bool wxBoolListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  wxString str(property->GetValue().GetStringRepresentation());  view->GetValueText()->SetValue(str);  if (view->GetValueList()->IsShown())  {    view->GetValueList()->SetStringSelection(str);  }  return true;}bool wxBoolListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetConfirmButton())    view->GetConfirmButton()->Disable();  if (view->GetCancelButton())    view->GetCancelButton()->Disable();  if (view->GetEditButton())    view->GetEditButton()->Enable();  if (view->GetValueText())    view->GetValueText()->Disable();  return true;}bool wxBoolListValidator::OnPrepareDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetValueList())  {    view->ShowListBoxControl(true);    view->GetValueList()->Enable();    view->GetValueList()->Append(wxT("True"));    view->GetValueList()->Append(wxT("False"));    wxChar *currentString = copystring(view->GetValueText()->GetValue());    view->GetValueList()->SetStringSelection(currentString);    delete[] currentString;  }  return true;}bool wxBoolListValidator::OnClearDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetValueList())  {    view->GetValueList()->Clear();    view->ShowListBoxControl(false);    view->GetValueList()->Disable();  }  return true;}// Called when the property is double clicked. Extra functionality can be provided,// cycling through possible values.bool wxBoolListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  if (property->GetValue().BoolValue())    property->GetValue() = false;  else    property->GetValue() = true;  view->DisplayProperty(property);  view->UpdatePropertyDisplayInList(property);  view->OnPropertyChanged(property);  return true;}////// String validator///IMPLEMENT_DYNAMIC_CLASS(wxStringListValidator, wxPropertyListValidator)wxStringListValidator::wxStringListValidator(wxStringList *list, long flags):  wxPropertyListValidator(flags){  m_strings = list;  // If no constraint, we just allow the string to be edited.  if (!m_strings && ((m_validatorFlags & wxPROP_ALLOW_TEXT_EDITING) == 0))    m_validatorFlags |= wxPROP_ALLOW_TEXT_EDITING;}bool wxStringListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow){  if (!m_strings)    return true;  if (!view->GetValueText())    return false;  wxString value(view->GetValueText()->GetValue());  if (!m_strings->Member(value.GetData()))  {    wxString str( wxT("Value ") );    str += value.GetData();    str += wxT(" is not valid.");    wxMessageBox( str.GetData(), wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);    return false;  }  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxStringListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  wxString value(view->GetValueText()->GetValue());  property->GetValue() = value ;  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxStringListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  wxString str(property->GetValue().GetStringRepresentation());  view->GetValueText()->SetValue(str);  if (m_strings && view->GetValueList() && view->GetValueList()->IsShown() && view->GetValueList()->GetCount() > 0)  {    view->GetValueList()->SetStringSelection(str);  }  return true;}bool wxStringListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  // Unconstrained  if (!m_strings)  {    if (view->GetEditButton())      view->GetEditButton()->Disable();    if (view->GetConfirmButton())      view->GetConfirmButton()->Enable();    if (view->GetCancelButton())      view->GetCancelButton()->Enable();    if (view->GetValueText())      view->GetValueText()->Enable();    return true;  }  // Constrained  if (view->GetValueText())    view->GetValueText()->Disable();  if (view->GetEditButton())    view->GetEditButton()->Enable();  if (view->GetConfirmButton())    view->GetConfirmButton()->Disable();  if (view->GetCancelButton())    view->GetCancelButton()->Disable();  return true;}bool wxStringListValidator::OnPrepareDetailControls( wxProperty *property,                                                     wxPropertyListView *view,                                                     wxWindow *WXUNUSED(parentWindow) ){  if (view->GetValueList())  {    view->ShowListBoxControl(true);    view->GetValueList()->Enable();    wxStringList::Node  *node = m_strings->GetFirst();    while (node)    {      wxChar *s = node->GetData();      view->GetValueList()->Append(s);      node = node->GetNext();    }    wxChar *currentString = property->GetValue().StringValue();    view->GetValueList()->SetStringSelection(currentString);  }  return true;}bool wxStringListValidator::OnClearDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!m_strings)  {    return true;  }  if (view->GetValueList())  {    view->GetValueList()->Clear();    view->ShowListBoxControl(false);    view->GetValueList()->Disable();  }  return true;}// Called when the property is double clicked. Extra functionality can be provided,// cycling through possible values.bool wxStringListValidator::OnDoubleClick( wxProperty *property,                                           wxPropertyListView *view,                                           wxWindow *WXUNUSED(parentWindow) ){  if (!view->GetValueText())    return false;  if (!m_strings)    return false;  wxStringList::Node    *node = m_strings->GetFirst();  wxChar                *currentString = property->GetValue().StringValue();  while (node)  {    wxChar *s = node->GetData();    if (wxStrcmp(s, currentString) == 0)    {      wxChar *nextString;      if (node->GetNext())        nextString = node->GetNext()->GetData();      else        nextString = m_strings->GetFirst()->GetData();      property->GetValue() = wxString(nextString);      view->DisplayProperty(property);      view->UpdatePropertyDisplayInList(property);      view->OnPropertyChanged(property);      return true;    }    else node = node->GetNext();  }  return true;}////// Filename validator///IMPLEMENT_DYNAMIC_CLASS(wxFilenameListValidator, wxPropertyListValidator)wxFilenameListValidator::wxFilenameListValidator(wxString message , wxString wildcard, long flags):  wxPropertyListValidator(flags), m_filenameWildCard(wildcard), m_filenameMessage(message){}wxFilenameListValidator::~wxFilenameListValidator(){}bool wxFilenameListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)){  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxFilenameListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  wxString value(view->GetValueText()->GetValue());  property->GetValue() = value ;  return true;}// Called when TICK is pressed or focus is lost or view wants to update// the property list.// Does the transferance from the property editing area to the property itselfbool wxFilenameListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (!view->GetValueText())    return false;  wxString str(property->GetValue().GetStringRepresentation());  view->GetValueText()->SetValue(str);  return true;}// Called when the property is double clicked. Extra functionality can be provided,// cycling through possible values.bool wxFilenameListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow){  if (!view->GetValueText())    return false;  OnEdit(property, view, parentWindow);  return true;}bool wxFilenameListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)){  if (view->GetConfirmButton())    view->GetConfirmButton()->Enable();  if (view->GetCancelButton())    view->GetCancelButton()->Enable();  if (view->GetEditButton())    view->GetEditButton()->Enable();  if (view->GetValueText())    view->GetValueText()->Enable((GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == wxPROP_ALLOW_TEXT_EDITING);  return true;}void wxFilenameListValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow){  if (!view->GetValueText())    return;#if wxUSE_FILEDLG    wxString s = wxFileSelector(        m_filenameMessage.GetData(),        wxPathOnly(property->GetValue().StringValue()),        wxFileNameFromPath(property->GetValue().StringValue()),        NULL,        m_filenameWildCard.GetData(),        0,        parentWindow);    if ( !s.empty() )    {        property->GetValue() = s;        view->DisplayProperty(property);        view->UpdatePropertyDisplayInList(property);        view->OnPropertyChanged(property);    }#else    wxUnusedVar(property);    wxUnusedVar(view);    wxUnusedVar(parentWindow);#endif}////// Colour validator///

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -