QBinaryTranslate/TranslateUI/TranslateBasic.h

37 lines
959 B
C++

#pragma once
#include "extract_basic.h"
#include "convert_basic.h"
/// <summary>
/// ·­Òë³ÌÐòºËÐÄ
/// </summary>
class TranslateBasic {
private:
QHash<QString, std::shared_ptr<ExtractUnit>> _extractor_types;
std::shared_ptr<ExtractUnit> _default_translate_rule = nullptr;
QHash<QString, std::shared_ptr<SizeProvider>> _size_provider_types;
std::shared_ptr<SizeProvider> _default_size_provider = nullptr;
public:
TranslateBasic();
std::shared_ptr<ExtractUnit> defaultRule() const;
std::shared_ptr<SizeProvider> defaultSizeProvider() const;
QHash<QString, std::shared_ptr<ExtractUnit>> extactors() const;
QHash<QString, std::shared_ptr<SizeProvider>> sizeProviders() const;
};
class ConstNumberProvider : public SizeProvider {
private:
QString _number_value;
public:
QString name() const override;
int32_t value(const QString& expr) const override;
void setExpression(const QString& expr) override;
QString expression() const override;
};