本文整理汇总了C++中SS::begin方法的典型用法代码示例。如果您正苦于以下问题:C++ SS::begin方法的具体用法?C++ SS::begin怎么用?C++ SS::begin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SS
的用法示例。
在下文中一共展示了SS::begin方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindVerticalAxesDistance
int BackgroundPrinter::FindVerticalAxesDistance(wxDC *dc, std::vector<Draw*> draws, const SS& sd) {
int d = 0;
for (SS::const_iterator ssi = sd.begin(); ssi != sd.end(); ssi++) {
set<int>::const_iterator si = (*ssi).begin();
if ((*ssi).end() == si)
assert(false);
int di = *si;
Draw *draw = draws[di];
double max = draw->GetDrawInfo()->GetMax();
double min = draw->GetDrawInfo()->GetMin();
wxString maxs = draw->GetDrawInfo()->GetValueStr(max, _T(""));
wxString mins = draw->GetDrawInfo()->GetValueStr(min, _T(""));
wxString unit = draw->GetDrawInfo()->GetUnit();
int maxext, minext, unitext, texth;
dc->GetTextExtent(maxs, &maxext, &texth);
dc->GetTextExtent(mins, &minext, &texth);
dc->GetTextExtent(unit, &unitext, &texth);
int msn = 0;
do {
int tw, th;
dc->GetTextExtent(draws[*si]->GetDrawInfo()->GetUnit(), &tw, &th);
msn = wxMax(msn, tw);
} while (++si != (*ssi).end());
int ext = wxMax(unitext, wxMax(maxext, minext));
ext = wxMax(ext, msn) + line_width;
d = wxMax(d, ext);
}
return d;
}
示例2: OnPrintPage
bool DrawsPrintout::OnPrintPage(int page) {
if (page != 1)
return false;
int sel = 0;
for (; sel < m_draws_count; ++sel)
if (m_draws[sel]->GetSelected())
break;
if (sel == m_draws_count)
return false;
wxDC *dc = GetDC();
#ifndef MINGW32
try {
wxPostScriptDC *psdc = dynamic_cast<wxPostScriptDC*>(dc);
if (psdc != nullptr)
psdc->PsPrint(_("\n/ISOLatin1Encoding [\n/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/minus/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef/.notdef/Lslash/lslash/Nacute/nacute/aogonek/Cacute/cacute/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/dotlessi/grave/acute/Oacute/tilde/macron/breve/dotaccent/Eogonek/eogonek/Sacute/sacute/.notdef/hungarumlaut/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/oacute/acute/mu/paragraph/periodcentered/.notdef/Zacute/zacute/.notdef/z/onehalf/threequarters/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/Ograve/Oacute/.notdef/.notdef/.notdef/multiply/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/oacute/.notdef/.notdef/.notdef/divide/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n] def\n"));
} catch(...) { // tu ew. usuniecie polskich znakow
}
#endif
wxFont f;
#ifdef __WXMSW__
f.Create(50, wxSWISS, wxNORMAL, wxNORMAL);
#else
f.Create(8, wxSWISS, wxNORMAL, wxNORMAL);
#endif
dc->SetMapMode(wxMM_TEXT);
dc->SetFont(f);
int ppiw, ppih;
GetPPIPrinter(&ppiw, &ppih);
//to milimiters
ppiw /= 25;
ppih /= 25;
int lorigin = Print::page_setup_dialog_data->GetMarginTopLeft().x * ppiw;
int torigin = Print::page_setup_dialog_data->GetMarginTopLeft().y * ppih;
dc->SetDeviceOrigin(lorigin, torigin);
int tw,th;
dc->GetTextExtent(_T("Z"), &tw, &th);
int topmargin, bottommargin, rightmargin;
topmargin = 0;
bottommargin = int(1.4 * th) + Print::page_setup_dialog_data->GetMarginBottomRight().y * ppih;
rightmargin = 10 + Print::page_setup_dialog_data->GetMarginBottomRight().x * ppiw;
SS cd = ChooseDraws();
for (SS::iterator i = cd.begin(); i != cd.end(); i++) {
int tm = (th + line_width) * (i->size() + 1);
if (tm > topmargin)
topmargin = tm;
}
int w, h, pw, ph;
dc->GetSize(&w, &h);
GetPageSizePixels(&pw, &ph);
dc->SetUserScale((float)w / (float)pw, (float)h / (float)ph);
BackgroundPrinter bp(0, rightmargin, topmargin, bottommargin);
bp.SetFont(f);
bp.SetSize(pw - print_left_margin - lorigin, (ph - print_top_margin - torigin) * 2 / 3);
int graph_start = bp.PrintBackground(dc, m_draws, cd);
bp.GetSize(&w, &h);
GraphPrinter gp(
#ifdef __WXGTK__
2,
#else
10,
#endif
graph_start, rightmargin, topmargin, bottommargin);
gp.SetSize(w, h);
gp.SetFont(f);
gp.PrintDraws(dc, m_draws, m_draws_count);
PrintShortDrawNames(&gp, dc);
PrintDrawsInfo(dc, lorigin, torigin, rightmargin, bottommargin);
return true;
}
示例3: PrintBackground
int BackgroundPrinter::PrintBackground(wxDC *dc, std::vector<Draw*> draws, const SS& sd) {
dc->SetTextForeground(GetTimeAxisCol());
dc->SetBrush(wxBrush(GetTimeAxisCol(), wxSOLID));
int ax_dist = FindVerticalAxesDistance(dc, draws, sd);
SS::iterator ssi = sd.begin();
do {
set<int>::iterator si = (*ssi).begin();
if ((*ssi).end() == si)
assert(false);
int di = *si;
m_draw = draws[di];
m_leftmargin += ax_dist;
SS::iterator next = ssi;
next++;
if (next == sd.end()) {
int w,h;
GetSize(&w, &h);
w = w - m_leftmargin + ax_dist;
SetSize(w, h);
DrawBackground(dc);
#ifdef __WXMSW__
DrawTimeAxis(dc, 48, 24, 15, 7);
#else
DrawTimeAxis(dc, 8, 4, 6);
#endif
}
DrawYAxisVals(dc, tick_len, line_width);
DrawYAxis(dc, arrow_height, arrow_width, line_width);
int x = (int)(arrow_width * 1.2) , y = line_width;
int textw, texth;
DrawUnit(dc, x, y);
dc->GetTextExtent(draws[*si]->GetDrawInfo()->GetUnit(), &textw, &texth);
wxColour pc = dc->GetTextForeground();
y = m_topmargin;
for (set<int>::reverse_iterator i = (*ssi).rbegin(); i != (*ssi).rend(); i++) {
DrawInfo* di = draws[*i]->GetDrawInfo();
dc->GetTextExtent(di->GetShortName(), &textw, &texth);
dc->SetTextForeground(di->GetDrawColor());
dc->DrawText(di->GetShortName(), m_leftmargin - 2 * line_width - textw, y - texth - line_width);
y -= texth + line_width;
}
dc->SetTextForeground(pc);
++ssi;
} while (ssi != sd.end());
return m_leftmargin;
}