Esempio n. 1
0
void CDlgDiagnosticLogFlags::OnOK(wxCommandEvent& event) {
    SET_LOCALE sl;
    char buf[64000];
    MIOFILE mf;
    bool val;
    unsigned int i;
    CMainDocument* pDoc = wxGetApp().GetDocument();

    wxASSERT(pDoc);
    wxASSERT(wxDynamicCast(pDoc, CMainDocument));

    mf.init_buf_write(buf, sizeof(buf));
    for (i=0; i<m_checkbox_list.size(); ++i) {
        wxCheckBox* ckbox = m_checkbox_list[i];
        val = ckbox->GetValue();
        mf.printf("        <%s>%d</%s>\n", (const char*)ckbox->GetLabel().ToAscii(), (int)val, (const char*)ckbox->GetLabel().ToAscii());
    }
    mf.printf("    </log_flags>\n");

    XML_PARSER xp(&mf);
    mf.init_buf_read(buf);
    log_flags.parse(xp);
    
    int retval = pDoc->rpc.set_cc_config(m_cc_config, log_flags);
    if (!retval) {
        pDoc->rpc.read_cc_config();
    }
    event.Skip();
}
Esempio n. 2
0
void CDlgDiagnosticLogFlags::CreateCheckboxes() {
    SET_LOCALE sl;
    char buf[64000];
    MIOFILE mf;
    bool val;

    m_checkbox_list.clear();
    
    mf.init_buf_write(buf, sizeof(buf));
    m_cc_config.write(mf, log_flags);
    
    mf.init_buf_read(buf);
    XML_PARSER xp(&mf);

    while (!xp.get_tag()) {
        if (!xp.is_tag) {
            continue;
        }
        if (xp.match_tag("log_flags")) break;
    }
    
    while (!xp.get_tag()) {
        if (!xp.is_tag) {
            continue;
        }
        if (xp.match_tag("/log_flags")) break;
        wxString label = wxString(xp.parsed_tag);
        xp.parse_bool(xp.parsed_tag, val);

        wxCheckBox* ckbox = new wxCheckBox(m_scrolledWindow, wxID_ANY, label);
        m_checkboxSizer->Add(ckbox, 0, wxLEFT, 25);
        m_checkbox_list.push_back(ckbox);
        ckbox->SetValue(val);
    }

    m_scrolledWindow->SetSizer( m_checkboxSizer );
    m_scrolledWindow->Layout();
    m_checkboxSizer->Fit( m_scrolledWindow );
}