Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #pragma once
00030
00031 #include "../css_box_property.h"
00032 #include "../css_box_length.h"
00033
00034 class CL_CSSBoxBackgroundPosition : public CL_CSSBoxProperty
00035 {
00036 public:
00037 CL_CSSBoxBackgroundPosition();
00038 void compute(const CL_CSSBoxBackgroundPosition *parent, CL_CSSResourceCache *layout, float em_size, float ex_size);
00039 CL_String to_string() const;
00040
00041 enum Type
00042 {
00043 type_value,
00044 type_inherit
00045 } type;
00046
00047 enum Type1
00048 {
00049 type1_left,
00050 type1_center,
00051 type1_right,
00052 type1_percentage,
00053 type1_length
00054 };
00055
00056 enum Type2
00057 {
00058 type2_top,
00059 type2_center,
00060 type2_bottom,
00061 type2_percentage,
00062 type2_length
00063 };
00064
00065 class Position
00066 {
00067 public:
00068 Position() : type_x(type1_percentage), type_y(type2_percentage), percentage_x(0.0f), percentage_y(0.0f) { }
00069
00070 Type1 type_x;
00071 Type2 type_y;
00072
00073 CL_CSSBoxLength length_x;
00074 float percentage_x;
00075 CL_CSSBoxLength length_y;
00076 float percentage_y;
00077 };
00078
00079 std::vector<Position> positions;
00080 };