Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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);
        }
    }
}
Exemplo n.º 5
0
void TextFrame::openWindow(const tstring& aFileName) {
	TextFrame* frame = new TextFrame(aFileName);
	frame->CreateEx(WinUtil::mdiClient);
}
Exemplo n.º 6
0
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;
}
Exemplo n.º 7
0
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;
}
Exemplo n.º 8
0
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);
}
Exemplo n.º 9
0
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();
}