void TextFrame::openWindow(const tstring& aFileName, Type aType) { TextFrame* frame = new TextFrame(aFileName, aType); if(SETTING(POPUNDER_TEXT) && aType == NORMAL) WinUtil::hiddenCreateEx(frame); else frame->CreateEx(WinUtil::mdiClient); }
void RTMPMP4Stream::onTextFrame(TextFrame &text) { AMFObject *obj = new AMFObject(); //Add text obj->AddProperty(L"text",text.GetWChar(),text.GetWLength()); //Send packet SendCommand(L"onTextData",obj); }
int PipeTextOutput::SendFrame(TextFrame& frame) { //Bloqueamos pthread_mutex_lock(&mutex); //Get string DWORD len = frame.GetWLength(); //Si no cabe if(fifoBuffer.length()+len>1024) //Limpiamos fifoBuffer.clear(); //Metemos en la fifo fifoBuffer.push(frame.GetWChar(),len); //Desbloqueamos pthread_mutex_unlock(&mutex); return len; }
void Label::updateText() { if (!m_textChanged) { return; } m_textChanged=false; for (TextFrame* frame : m_allTextFrames) { SAFF_RELEASE(frame); } m_allTextFrames.clear(); vector<string> strs; Utf8ToVector(m_text,strs); for (auto iter = strs.begin(); iter != strs.end(); ++iter) { TextFrame* frame = GLCache::GetInstance()->addText(*iter, m_fontName, m_fontSize); if (frame) { frame->retain(); m_allTextFrames.push_back(frame); } } }
void TextFrame::openWindow(const tstring& aFileName) { TextFrame* frame = new TextFrame(aFileName); frame->CreateEx(WinUtil::mdiClient); }
void PromoBatchMaster::slotPrint() { if (!saveItem(true)) return; dataToWidget(); // Setup grid for printing Grid* grid = new Grid(6); Grid* header = new Grid(1, grid); TextFrame* text; text = new TextFrame(tr("Promotion Batch"), header); text->setJustify(ALIGN_CENTER); text->setFont(Font("Times", 24, 75)); header->set(USE_NEXT, 0, text); if (_curr.executedOn().isNull()) { text = new TextFrame(tr("Preliminary"), header); } else { QString dateText = DateValcon().format(_curr.executedOn()); text = new TextFrame(tr("Executed On: %1").arg(dateText), header); } text->setJustify(ALIGN_CENTER); text->setFont(Font("Times", 18)); header->set(USE_NEXT, 0, text); header->setColumnWeight(0, 1); grid->set(0, 0, 1, grid->columns(), header, Grid::AllSides); grid->set(USE_NEXT, 0, ""); for (int column = 0; column < 6; ++column) { grid->setColumnSticky(column, column < 3 ? Grid::Left : Grid::Right); grid->setColumnPad(column, 5); } grid->set(2, 0, tr("Item Number")); grid->set(3, 0, new LineFrame(grid), Grid::LeftRight); grid->set(2, 1, tr("Description")); grid->set(3, 1, new LineFrame(grid), Grid::LeftRight); grid->set(2, 2, tr("Size")); grid->set(3, 2, new LineFrame(grid), Grid::LeftRight); grid->set(2, 3, tr("Current Price")); grid->set(3, 3, new LineFrame(grid), Grid::LeftRight); grid->set(2, 4, tr("Promo Price")); grid->set(3, 4, new LineFrame(grid), Grid::LeftRight); grid->set(2, 5, tr("Ordered")); grid->set(3, 5, new LineFrame(grid), Grid::LeftRight); grid->setHeaderRows(grid->rows()); // Setup progress dialog QProgressDialog* progress = new QProgressDialog(tr("Printing promos..."), tr("Cancel"), _curr.items().size(), this, "Progress", true); progress->setMinimumDuration(1000); progress->setCaption(tr("Progress")); // Print promos for (unsigned int i = 0; i < _curr.items().size(); ++i) { progress->setProgress(i); qApp->processEvents(); if (progress->wasCancelled()) break; Id item_id = _curr.items()[i].item_id; if (item_id == INVALID_ID) continue; QString number = _curr.items()[i].number; QString size = _curr.items()[i].size; Price promoPrice = _curr.items()[i].price; fixed ordered = _curr.items()[i].ordered; Item item; findItem(item_id, item); Price currentPrice = item.price(_store->getId(), size); grid->set(USE_NEXT, 0, number); grid->set(USE_CURR, 1, item.description()); grid->set(USE_CURR, 2, size); grid->set(USE_CURR, 3, currentPrice.toString()); grid->set(USE_CURR, 4, promoPrice.toString()); grid->set(USE_CURR, 5, ordered.toString()); } bool cancelled = progress->wasCancelled(); progress->setProgress(_curr.items().size()); delete progress; if (!cancelled) grid->print(this); delete grid; }
void ItemInquiry::slotRefresh(QDate from, QDate to, Id store_id) { if (loading) return; loading = true; needsRefresh = false; delete _grid; _grid = NULL; // Clear data list->clear(); for (int label = 0; label < 10; ++label) labels[label]->setText(" "); // Get item to show and return if none Id item_id = search->getId(); if (item_id == INVALID_ID) { loading = false; return; } setEnabled(false); QApplication::setOverrideCursor(waitCursor); qApp->processEvents(); // Get item information Item item; quasar->db()->lookup(item_id, item); fixed beginOnHand = 0.0; fixed beginCost = 0.0; fixed beginOnOrder = 0.0; fixed totalDebits = 0.0; fixed totalCredits = 0.0; labels[0]->setText(tr("Beginning Balance")); labels[1]->setText(tr("Total Increase")); labels[2]->setText(tr("Total Decrease")); labels[3]->setText(tr("Net Change")); labels[4]->setText(tr("Ending Balance")); // Get beginning balance if (!from.isNull()) quasar->db()->itemGeneral(item.id(), "", store_id, from - 1, beginOnHand, beginCost, beginOnOrder); // Select transactions vector<Gltx> gltxs; vector<fixed> quantities; vector<fixed> ext_costs; vector<fixed> ext_prices; vector<bool> void_flags; quasar->db()->selectItem(item.id(), store_id, from, to, gltxs, quantities, ext_costs, ext_prices, void_flags); // Setup grid _grid = new Grid(8); Grid* header = new Grid(1, _grid); TextFrame* text; text = new TextFrame(tr("Item Inquiry"), header); text->setFont(Font("Times", 24)); header->set(USE_NEXT, 0, text); text = new TextFrame(item.number() + " " + item.description(), header); text->setFont(Font("Times", 18)); header->set(USE_NEXT, 0, text); text = new TextFrame(DateValcon().format(from) + tr(" to ") + DateValcon().format(to), header); text->setFont(Font("Times", 18)); header->set(USE_NEXT, 0, text); header->setColumnWeight(0, 1); _grid->set(0, 0, 1, _grid->columns(), header, Grid::AllSides); _grid->set(USE_NEXT, 0, ""); for (int column = 0; column < 8; ++column) { _grid->setColumnSticky(column, column < 4 ? Grid::Left : Grid::Right); _grid->setColumnPad(column, 5); } _grid->set(2, 0, tr("Type")); _grid->set(3, 0, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 1, tr("Id #")); _grid->set(3, 1, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 2, tr("Store")); _grid->set(3, 2, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 3, tr("Date")); _grid->set(3, 3, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 4, tr("Memo")); _grid->set(3, 4, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 5, tr("Debit")); _grid->set(3, 5, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 6, tr("Credit")); _grid->set(3, 6, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 7, tr("Voided?")); _grid->set(3, 7, new LineFrame(_grid), Grid::LeftRight); _grid->setHeaderRows(_grid->rows()); // Setup progress dialog QProgressDialog* progress = new QProgressDialog(tr("Loading data..."), tr("Cancel"), gltxs.size(), this, "Progress", true); progress->setMinimumDuration(1000); progress->setCaption(tr("Progress")); // Process each transaction for (unsigned int i = 0; i < gltxs.size(); ++i) { const Gltx& gltx = gltxs[i]; fixed ext_cost = ext_costs[i]; // TODO: pick to show cost, qty, or price if (i % 50 == 0) { progress->setProgress(i); qApp->processEvents(); if (progress->wasCancelled()) { break; } } // Don't show voided lines or quotes if (void_flags[i] || gltx.dataType() == DataObject::QUOTE) continue; Store store; quasar->db()->lookup(gltx.storeId(), store); ListViewItem* item = new ListViewItem(list, gltx.id()); item->setValue(0, gltx.dataTypeName()); item->setValue(1, gltx.number()); item->setValue(2, store.number()); item->setValue(3, gltx.postDate()); item->setValue(4, gltx.memo()); item->setValue(7, !gltx.isActive()); _grid->set(USE_NEXT, 0, gltx.dataTypeName()); _grid->set(USE_CURR, 1, gltx.number()); _grid->set(USE_CURR, 2, store.number()); _grid->set(USE_CURR, 3, DateValcon().format(gltx.postDate())); _grid->set(USE_CURR, 4, gltx.memo()); _grid->set(USE_CURR, 7, gltx.isActive() ? " " : "x"); // Correct sign based on type switch (gltx.dataType()) { case DataObject::INVOICE: case DataObject::RETURN: ext_cost = -ext_cost; break; default: break; } if (ext_cost >= 0.0) { item->setValue(5, ext_cost); _grid->set(USE_CURR, 5, MoneyValcon().format(ext_cost)); if (gltx.isActive()) totalDebits += ext_cost; } else { item->setValue(6, -ext_cost); _grid->set(USE_CURR, 6, MoneyValcon().format(-ext_cost)); if (gltx.isActive()) totalCredits += -ext_cost; } } progress->setProgress(gltxs.size()); delete progress; // Set bottom totals fixed netChange = totalDebits - totalCredits; fixed endBalance = beginCost + netChange; MoneyValcon moneyValcon; labels[5]->setText(moneyValcon.format(beginCost)); labels[6]->setText(moneyValcon.format(totalDebits)); labels[7]->setText(moneyValcon.format(totalCredits)); labels[8]->setText(moneyValcon.format(netChange)); labels[9]->setText(moneyValcon.format(endBalance)); _grid->set(USE_NEXT, 0, ""); _grid->set(USE_NEXT, 0, 1, 5, tr("Beginning Balance"), Grid::Right); _grid->set(USE_CURR, 5, 1, 2, MoneyValcon().format(beginCost)); _grid->set(USE_NEXT, 0, 1, 5, tr("Total Debits"), Grid::Right); _grid->set(USE_CURR, 5, 1, 2, MoneyValcon().format(totalDebits)); _grid->set(USE_NEXT, 0, 1, 5, tr("Total Credits"), Grid::Right); _grid->set(USE_CURR, 5, 1, 2, MoneyValcon().format(totalCredits)); _grid->set(USE_NEXT, 0, 1, 5, tr("Net Change"), Grid::Right); _grid->set(USE_CURR, 5, 1, 2, MoneyValcon().format(netChange)); _grid->set(USE_NEXT, 0, 1, 5, tr("Ending Balance"), Grid::Right); _grid->set(USE_CURR, 5, 1, 2, MoneyValcon().format(endBalance)); QApplication::restoreOverrideCursor(); setEnabled(true); loading = false; }
void SE_StyleVisitor::VisitText(Text& text) { delete m_primitive; m_primitive = NULL; SE_Text* primitive = new SE_Text(); m_primitive = primitive; ParseStringExpression(text.GetContent(), primitive->content, L""); ParseStringExpression(text.GetFontName(), primitive->fontName, Text::sFontNameDefault); ParseDoubleExpression(text.GetHeight(), primitive->height, 4.0); ParseDoubleExpression(text.GetAngle(), primitive->angleDeg, 0.0); ParseDoubleExpression(text.GetPositionX(), primitive->position[0], 0.0); ParseDoubleExpression(text.GetPositionY(), primitive->position[1], 0.0); ParseDoubleExpression(text.GetLineSpacing(), primitive->lineSpacing, 1.05); ParseBooleanExpression(text.GetHeightScalable(), primitive->heightScalable, true); ParseBooleanExpression(text.GetBold(), primitive->bold, false); ParseBooleanExpression(text.GetItalic(), primitive->italic, false); ParseBooleanExpression(text.GetUnderlined(), primitive->underlined, false); ParseBooleanExpression(text.GetOverlined(), primitive->overlined, false); ParseDoubleExpression(text.GetObliqueAngle(), primitive->obliqueAngle, 0.0); ParseDoubleExpression(text.GetTrackSpacing(), primitive->trackSpacing, 1.0); ParseStringExpression(text.GetHorizontalAlignment(), primitive->hAlignment, Text::sHAlignmentDefault, Text::sHAlignmentValues); ParseStringExpression(text.GetVerticalAlignment(), primitive->vAlignment, Text::sVAlignmentDefault, Text::sVAlignmentValues); ParseStringExpression(text.GetJustification(), primitive->justification, Text::sJustificationDefault, Text::sJustificationValues); ParseColorExpression(text.GetTextColor(), primitive->textColor, 0xff000000); ParseColorExpression(text.GetGhostColor(), primitive->ghostColor, 0); ParseStringExpression(text.GetMarkup(), primitive->markup, Text::sMarkupDefault); ParseStringExpression(text.GetResizeControl(), primitive->resizeControl, GraphicElement::sResizeControlDefault, GraphicElement::sResizeControlValues); TextFrame* frame = text.GetFrame(); if (frame) { ParseColorExpression(frame->GetLineColor(), primitive->frameLineColor, 0); ParseColorExpression(frame->GetFillColor(), primitive->frameFillColor, 0); ParseDoubleExpression(frame->GetOffsetX(), primitive->frameOffset[0], 0.0); ParseDoubleExpression(frame->GetOffsetY(), primitive->frameOffset[1], 0.0); } primitive->cacheable = !(primitive->content.expression || primitive->fontName.expression || primitive->height.expression || primitive->angleDeg.expression || primitive->position[0].expression || primitive->position[1].expression || primitive->lineSpacing.expression || primitive->heightScalable.expression || primitive->bold.expression || primitive->italic.expression || primitive->underlined.expression || primitive->overlined.expression || primitive->obliqueAngle.expression || primitive->trackSpacing.expression || primitive->hAlignment.expression || primitive->vAlignment.expression || primitive->justification.expression || primitive->textColor.expression || primitive->ghostColor.expression || primitive->frameLineColor.expression || primitive->frameFillColor.expression || primitive->frameOffset[0].expression || primitive->frameOffset[1].expression || primitive->markup.expression || primitive->resizeControl.expression); }
void SalesHistory::slotRefresh() { _list->clear(); delete _grid; _grid = NULL; Id item_id = _item->getId(); if (item_id == INVALID_ID) return; Item item; _quasar->db()->lookup(item_id, item); int count = _count->getInt(); if (count <= 0) return; Id store = _store->getId(); QString size = _size->currentText(); if (size == tr("All Sizes")) size = ""; fixed sizeQty = item.sizeQty(_qtySize->currentText()); QApplication::setOverrideCursor(waitCursor); qApp->processEvents(); vector<QDate> from; vector<QDate> to; vector<fixed> qtys; vector<fixed> costs; vector<fixed> prices; int year = _date->getDate().year(); int month = _date->getDate().month(); int day = _date->getDate().day(); int dow = _date->getDate().dayOfWeek(); if (_period->currentItem() == 0) day = 1; else if (_period->currentItem() == 1) day -= dow; // Setup value ranges int line; for (line = 0; line < count; ++line) { QDate start(year, month, day); QDate end = start; switch (_period->currentItem()) { case 0: // Month end = end + start.daysInMonth() - 1; --month; break; case 1: // Week end = end + 6; day -= 7; break; case 2: // Day --day; break; } from.push_back(start); to.push_back(end); if (day < 1) { --month; if (month < 1) { --year; month = 12; } day += QDate(year, month, 1).daysInMonth(); } if (month < 1) { --year; month = 12; } qtys.push_back(0.0); costs.push_back(0.0); prices.push_back(0.0); } for (unsigned int i = 0; i < from.size(); ++i) { fixed qty, cost, price; QDate start = from[i]; QDate end = to[i]; if (end > _date->getDate()) end = _date->getDate(); _quasar->db()->itemSold(item.id(), size, store, start, end, qty, cost, price); qtys[i] += qty; costs[i] += cost; prices[i] += price; } // Setup grid _grid = new Grid(7); Grid* header = new Grid(1, _grid); TextFrame* text; text = new TextFrame(tr("Sales History"), header); text->setFont(Font("Times", 24)); header->set(USE_NEXT, 0, text); text = new TextFrame(item.number() + " " + item.description(), header); text->setFont(Font("Times", 18)); header->set(USE_NEXT, 0, text); header->setColumnWeight(0, 1); _grid->set(0, 0, 1, _grid->columns(), header, Grid::AllSides); _grid->set(USE_NEXT, 0, ""); for (int column = 0; column < 7; ++column) { _grid->setColumnSticky(column, column < 2 ? Grid::Left : Grid::Right); _grid->setColumnPad(column, 5); } _grid->set(2, 0, tr("Period")); _grid->set(3, 0, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 1, tr("Start Date")); _grid->set(3, 1, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 2, tr("Quantity")); _grid->set(3, 2, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 3, tr("Total Cost")); _grid->set(3, 3, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 4, tr("Total Price")); _grid->set(3, 4, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 5, tr("Profit")); _grid->set(3, 5, new LineFrame(_grid), Grid::LeftRight); _grid->set(2, 6, tr("Margin")); _grid->set(3, 6, new LineFrame(_grid), Grid::LeftRight); _grid->setHeaderRows(_grid->rows()); // Print out totals fixed total_qty = 0.0; fixed total_cost = 0.0; fixed total_price = 0.0; for (line = 0; line < count; ++line) { QDate date = from[line]; fixed qty = qtys[line]; fixed cost = costs[line]; fixed price = prices[line]; QString period = ""; switch (_period->currentItem()) { case 0: // Month period = QDate::monthName(date.month()); break; case 1: // Week period = tr("Week ") + QString::number(line + 1); break; case 2: // Day period = QDate::dayName(date.dayOfWeek()); break; } addLine(period, date, qty, cost, price, sizeQty); total_qty += qty; total_cost += cost; total_price += price; } addLine(tr("Total"), QDate(), total_qty, total_cost, total_price, sizeQty); QApplication::restoreOverrideCursor(); }