// // Change the state of the item and redraw it // void wxCheckListBoxItem::Check ( bool bCheck ) { m_bChecked = bCheck; // // Index may be chanegd because new items were added/deleted // if (m_pParent->GetItemIndex(this) != (int)m_nIndex) { // // Update it // int nIndex = m_pParent->GetItemIndex(this); wxASSERT_MSG(nIndex != wxNOT_FOUND, wxT("what does this item do here?")); m_nIndex = (size_t)nIndex; } wxCommandEvent vEvent( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED ,m_pParent->GetId() ); vEvent.SetInt(m_nIndex); vEvent.SetEventObject(m_pParent); m_pParent->ProcessCommand(vEvent); } // end of wxCheckListBoxItem::Check
void DataExportDlg::on_widget_change() { wxString s = (only_a_cb->GetValue() ? wxT("if a: ") : wxT("all: ")); for (size_t i = 0; i < list->GetCount(); ++i) { if (list->IsChecked(i)) { if (!s.EndsWith(wxT(": ")) && !cv[i].empty()) s += wxT(", "); s += cv[i]; } } text->ChangeValue(s); FindWindow(wxID_OK)->Enable(true); }
bool getResults(wxArrayString& out, bool* createInfoPlistFile, bool* createIcon) { if(not m_accepted) return false; *createInfoPlistFile = m_info_plist_cb->IsChecked(); *createIcon = m_icon_cb->IsChecked(); const wxArrayString& items = m_choices_widget->GetStrings(); const int count = items.GetCount(); for(int n = 0; n < count; n++) { if(m_choices_widget->IsChecked(n)) out.Add(items[n]); } return true; }
void DataExportDlg::OnTextChanged(wxCommandEvent&) { //if (!text->IsModified()) // return; string s = wx2s(text->GetValue()); size_t colon = s.find(':'); bool parsable = (ftk->check_syntax("print " + s) && colon != string::npos); FindWindow(wxID_OK)->Enable(parsable); if (parsable) { only_a_cb->SetValue(s.substr(0, colon) == "if a"); vector<string> v = split_string(s.substr(colon + 1), ','); vm_foreach (string, i, v) *i = strip_string(*i); for (size_t i = 0; i < list->GetCount(); ++i) list->Check(i, contains_element(v, wx2s(cv[i]))); } }
bool wxCheckListBoxItem::OnDrawItem ( wxDC& rDc , const wxRect& rRect , wxODAction eAct , wxODStatus eStat ) { wxRect vRect = rRect; ::WinQueryWindowRect( m_pParent->GetHWND() ,&rDc.m_vRclPaint ); if (IsChecked()) eStat = (wxOwnerDrawn::wxODStatus)(eStat | wxOwnerDrawn::wxODChecked); // // Unfortunately PM doesn't quite get the text position exact. We need to alter // it down and to the right, just a little bit. The coords in rRect are OS/2 // coords not wxWidgets coords. // vRect.x += 5; vRect.y -= 3; if (wxOwnerDrawn::OnDrawItem( rDc ,vRect ,eAct ,eStat)) { size_t nCheckWidth = GetDefaultMarginWidth(); size_t nCheckHeight = m_pParent->GetItemHeight(); int nParentHeight; int nX = rRect.GetX(); int nY = rRect.GetY(); int nOldY = nY; wxColour vColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); wxPen vPenBack; wxPen vPenGray; wxPen vPenPrev; m_pParent->GetSize( NULL ,&nParentHeight ); nY = nParentHeight - nY - nCheckHeight; vPenBack = wxPen(vColour, 1, wxSOLID); vPenGray = wxPen(wxColour(127, 127, 127), 1, wxSOLID); // // Erase the 1-pixel border // rDc.SetPen(vPenBack); rDc.DrawRectangle( nX ,nY ,nCheckWidth ,nCheckHeight ); // // Now we draw the smaller rectangle // nY++; nCheckWidth -= 2; nCheckHeight -= 2; // // Draw hollow gray rectangle // rDc.SetPen(vPenGray); rDc.DrawRectangle( nX ,nY ,nCheckWidth ,nCheckHeight ); nX++; if (IsChecked()) { // // Draw the check by loading the sys standard bitmap and drawing it // HBITMAP hChkBmp = ::WinGetSysBitmap( HWND_DESKTOP ,SBMP_MENUCHECK ); POINTL vPoint = {nX, nOldY + 3}; ::WinDrawBitmap( rDc.GetHPS() ,hChkBmp ,NULL ,&vPoint ,NULL ,NULL ,DBM_NORMAL ); } return TRUE; } return FALSE; } // end of wxCheckListBoxItem::OnDrawItem