青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評論-2670  文章-0  trackbacks-0
    我們知道制作控件的時候,其實最困難的不是定出那個支撐整個系統的架構,而是為各種空間寫繪制的代碼(囧)。為了解決這個問題,我在這套渲染庫上設計了一種XML寫成的模板,然后在模板內部提供一個簡單的語言來進行簡單但是強大的運算。這樣的話,不僅可以省略很多代碼,還為控件的換膚提供了強有力的支持。

    Graphic Element Template是一種將圖形方便地組織起來的方法,使用XML進行描述,舉個例子:現在要在一個rectangle中間居中一段文字:
 1 <rectangle
 2     name="rect"
 3     x="100"
 4     y="100"
 5     width="400"
 6     height="300"
 7 >
 8     <text
 9         x="(rect.width-this.width)/2"
10         y="(rect.height-this.height)/2"
11         text="CENTERED TEXT"
12         />
13 </rectangle>

    如果我們可以在標簽內部使用簡單的腳本,那么做控件的時候,只要使用一個template,就可以省去我們很多時間了。于是我設計了這樣子的一個Graphic Element Template,可以定義一個模板,然后定義屬性,最后在屬性內部對腳本進行計算。為了在Visual Studio 2008方便地撰寫Graphic Element Template文件,我寫了如下的一個XML Schema。明天開始實現Graphics Element Template。
  1 <?xml version="1.0" encoding="utf-8"?>
  2 <xs:schema id="irconfig"
  3     targetNamespace="http://tempuri.org/irconfig.xsd"
  4     elementFormDefault="qualified"
  5     xmlns="http://tempuri.org/irconfig.xsd"
  6     xmlns:mstns="http://tempuri.org/irconfig.xsd"
  7     xmlns:xs="http://www.w3.org/2001/XMLSchema"
  8 >
  9   <xs:simpleType name="pen_weight">
 10     <xs:restriction base="xs:unsignedByte" >
 11       <xs:minInclusive value="0" />
 12     </xs:restriction>
 13   </xs:simpleType>
 14   <xs:simpleType name="boolean_type">
 15     <xs:restriction base="xs:string">
 16       <xs:enumeration value="true" />
 17       <xs:enumeration value="false" />
 18     </xs:restriction>
 19   </xs:simpleType>
 20   <xs:simpleType name="property_type">
 21     <xs:restriction base="xs:string">
 22       <xs:enumeration value="int" />
 23       <xs:enumeration value="real" />
 24       <xs:enumeration value="str" />
 25       <xs:enumeration value="bool" />
 26     </xs:restriction>
 27   </xs:simpleType>
 28   <xs:simpleType name="expression_type">
 29     <xs:restriction base="xs:string" />
 30   </xs:simpleType>
 31   <xs:simpleType name="name_type">
 32     <xs:restriction base="xs:NCName" />
 33   </xs:simpleType>
 34   <xs:simpleType name="brushkind_type">
 35     <xs:restriction base="xs:string">
 36       <xs:enumeration value="solid" />
 37       <xs:enumeration value="linear-gradient" />
 38       <xs:enumeration value="bitmap" />
 39     </xs:restriction>
 40   </xs:simpleType>
 41   <xs:simpleType name="penendcap_type">
 42     <xs:restriction base="xs:string">
 43       <xs:enumeration value="round" />
 44       <xs:enumeration value="square" />
 45       <xs:enumeration value="flat" />
 46     </xs:restriction>
 47   </xs:simpleType>
 48   <xs:simpleType name="penjoin_type">
 49     <xs:restriction base="xs:string">
 50       <xs:enumeration value="round" />
 51       <xs:enumeration value="bevel" />
 52       <xs:enumeration value="miter" />
 53     </xs:restriction>
 54   </xs:simpleType>
 55   <xs:complexType name="color_type">
 56     <xs:attribute name="r" type="xs:unsignedByte" use="required"/>
 57     <xs:attribute name="g" type="xs:unsignedByte" use="required"/>
 58     <xs:attribute name="b" type="xs:unsignedByte" use="required"/>
 59     <xs:attribute name="a" type="xs:unsignedByte"/>
 60   </xs:complexType>
 61 
 62   <xs:complexType name="element_definition">
 63     <xs:attribute name="name" type="name_type"/>
 64     <xs:attribute name="visible" type="expression_type"/>
 65   </xs:complexType>
 66   <xs:complexType name="curve_definition">
 67     <xs:complexContent>
 68       <xs:extension base="element_definition">
 69         <xs:attribute name="pen" type="expression_type" />
 70       </xs:extension>
 71     </xs:complexContent>
 72   </xs:complexType>
 73   <xs:complexType name="shape_definition">
 74     <xs:complexContent>
 75       <xs:extension base="curve_definition">
 76         <xs:attribute name="brush" type="expression_type" />
 77       </xs:extension>
 78     </xs:complexContent>
 79   </xs:complexType>
 80   <xs:complexType name="shape_container_definition">
 81     <xs:complexContent>
 82       <xs:extension base="shape_definition">
 83         <xs:sequence>
 84           <xs:group ref="element_group" minOccurs="0" maxOccurs="unbounded"/>
 85         </xs:sequence>
 86       </xs:extension>
 87     </xs:complexContent>
 88   </xs:complexType>
 89 
 90   <xs:group name="element_group">
 91     <xs:choice>
 92       <xs:element name="line">
 93         <xs:complexType>
 94           <xs:complexContent>
 95             <xs:extension base="curve_definition">
 96               <xs:attribute name="x1" type="expression_type" use="required"/>
 97               <xs:attribute name="y1" type="expression_type" use="required"/>
 98               <xs:attribute name="x2" type="expression_type" use="required"/>
 99               <xs:attribute name="y2" type="expression_type" use="required"/>
100             </xs:extension>
101           </xs:complexContent>
102         </xs:complexType>
103       </xs:element>
104       <xs:element name="rectangle">
105         <xs:complexType>
106           <xs:complexContent>
107             <xs:extension base="shape_container_definition">
108               <xs:attribute name="x" type="expression_type" use="required"/>
109               <xs:attribute name="y" type="expression_type" use="required"/>
110               <xs:attribute name="width" type="expression_type" use="required"/>
111               <xs:attribute name="height" type="expression_type" use="required"/>
112             </xs:extension>
113           </xs:complexContent>
114         </xs:complexType>
115       </xs:element>
116       <xs:element name="roundrect">
117         <xs:complexType>
118           <xs:complexContent>
119             <xs:extension base="shape_container_definition">
120               <xs:attribute name="x" type="expression_type" use="required"/>
121               <xs:attribute name="y" type="expression_type" use="required"/>
122               <xs:attribute name="width" type="expression_type" use="required"/>
123               <xs:attribute name="height" type="expression_type" use="required"/>
124               <xs:attribute name="ellipse-width" type="expression_type" use="required"/>
125               <xs:attribute name="ellipse-height" type="expression_type" use="required"/>
126             </xs:extension>
127           </xs:complexContent>
128         </xs:complexType>
129       </xs:element>
130       <xs:element name="ellipse">
131         <xs:complexType>
132           <xs:complexContent>
133             <xs:extension base="shape_container_definition">
134               <xs:attribute name="x" type="expression_type" use="required"/>
135               <xs:attribute name="y" type="expression_type" use="required"/>
136               <xs:attribute name="width" type="expression_type" use="required"/>
137               <xs:attribute name="height" type="expression_type" use="required"/>
138             </xs:extension>
139           </xs:complexContent>
140         </xs:complexType>
141       </xs:element>
142       <xs:element name="chord">
143         <xs:complexType>
144           <xs:complexContent>
145             <xs:extension base="shape_container_definition">
146               <xs:attribute name="x" type="expression_type" use="required"/>
147               <xs:attribute name="y" type="expression_type" use="required"/>
148               <xs:attribute name="width" type="expression_type" use="required"/>
149               <xs:attribute name="height" type="expression_type" use="required"/>
150               <xs:attribute name="start-angle" type="expression_type" use="required" />
151               <xs:attribute name="end-angle" type="expression_type" use="required" />
152             </xs:extension>
153           </xs:complexContent>
154         </xs:complexType>
155       </xs:element>
156       <xs:element name="pie">
157         <xs:complexType>
158           <xs:complexContent>
159             <xs:extension base="shape_container_definition">
160               <xs:attribute name="x" type="expression_type" use="required"/>
161               <xs:attribute name="y" type="expression_type" use="required"/>
162               <xs:attribute name="width" type="expression_type" use="required"/>
163               <xs:attribute name="height" type="expression_type" use="required"/>
164               <xs:attribute name="start-angle" type="expression_type" use="required" />
165               <xs:attribute name="end-angle" type="expression_type" use="required" />
166             </xs:extension>
167           </xs:complexContent>
168         </xs:complexType>
169       </xs:element>
170       <xs:element name="arc">
171         <xs:complexType>
172           <xs:complexContent>
173             <xs:extension base="curve_definition">
174               <xs:attribute name="x" type="expression_type" use="required"/>
175               <xs:attribute name="y" type="expression_type" use="required"/>
176               <xs:attribute name="width" type="expression_type" use="required"/>
177               <xs:attribute name="height" type="expression_type" use="required"/>
178               <xs:attribute name="start-angle" type="expression_type" use="required" />
179               <xs:attribute name="end-angle" type="expression_type" use="required" />
180             </xs:extension>
181           </xs:complexContent>
182         </xs:complexType>
183       </xs:element>
184       <xs:element name="polyline">
185         <xs:complexType>
186           <xs:complexContent>
187             <xs:extension base="curve_definition">
188               <xs:sequence>
189                 <xs:element name="handle" minOccurs="1" maxOccurs="unbounded">
190                   <xs:complexType>
191                     <xs:attribute name="x" type="expression_type" use="required"/>
192                     <xs:attribute name="y" type="expression_type" use="required"/>
193                   </xs:complexType>
194                 </xs:element>
195               </xs:sequence>
196             </xs:extension>
197           </xs:complexContent>
198         </xs:complexType>
199       </xs:element>
200       <xs:element name="polygon">
201         <xs:complexType>
202           <xs:complexContent>
203             <xs:extension base="shape_container_definition">
204               <xs:sequence>
205                 <xs:element name="handle" minOccurs="1" maxOccurs="unbounded">
206                   <xs:complexType>
207                     <xs:attribute name="x" type="expression_type" use="required"/>
208                     <xs:attribute name="y" type="expression_type" use="required"/>
209                   </xs:complexType>
210                 </xs:element>
211               </xs:sequence>
212             </xs:extension>
213           </xs:complexContent>
214         </xs:complexType>
215       </xs:element>
216       <xs:element name="bezier">
217         <xs:complexType>
218           <xs:complexContent>
219             <xs:extension base="curve_definition">
220               <xs:sequence>
221                 <xs:element name="handle" minOccurs="4" maxOccurs="unbounded">
222                   <xs:complexType>
223                     <xs:attribute name="x" type="expression_type" use="required"/>
224                     <xs:attribute name="y" type="expression_type" use="required"/>
225                   </xs:complexType>
226                 </xs:element>
227               </xs:sequence>
228             </xs:extension>
229           </xs:complexContent>
230         </xs:complexType>
231       </xs:element>
232       <xs:element name="text">
233         <xs:complexType>
234           <xs:complexContent>
235             <xs:extension base="shape_definition">
236               <xs:attribute name="font" type="expression_type" use="required"/>
237               <xs:attribute name="x" type="expression_type" use="required"/>
238               <xs:attribute name="y" type="expression_type" use="required"/>
239               <xs:attribute name="text" type="expression_type" use="required"/>
240             </xs:extension>
241           </xs:complexContent>
242         </xs:complexType>
243       </xs:element>
244       <xs:element name="picture">
245         <xs:complexType>
246           <xs:complexContent>
247             <xs:extension base="element_definition">
248               <xs:attribute name="x" type="expression_type" use="required"/>
249               <xs:attribute name="y" type="expression_type" use="required"/>
250               <xs:attribute name="bitmap" type="expression_type" use="required"/>
251             </xs:extension>
252           </xs:complexContent>
253         </xs:complexType>
254       </xs:element>
255       <xs:element name="instance" minOccurs="0" maxOccurs="unbounded">
256         <xs:complexType>
257           <xs:complexContent>
258             <xs:extension base="element_definition">
259               <xs:sequence>
260                 <xs:element name="setter" minOccurs="0" maxOccurs="unbounded">
261                   <xs:complexType>
262                     <xs:attribute name="name" type="name_type" />
263                     <xs:attribute name="value" type="expression_type" />
264                   </xs:complexType>
265                 </xs:element>
266               </xs:sequence>
267               <xs:attribute name="reference" type="name_type" use="required" />
268             </xs:extension>
269           </xs:complexContent>
270         </xs:complexType>
271       </xs:element>
272     </xs:choice>
273   </xs:group>
274 
275   <xs:element name="irconfig">
276     <xs:complexType>
277       <xs:sequence>
278         <xs:element name="resources" minOccurs="0" maxOccurs="1">
279           <xs:complexType>
280             <xs:sequence>
281               <xs:element name="brush" minOccurs="0" maxOccurs="unbounded">
282                 <xs:complexType>
283                   <xs:sequence>
284                     <xs:element name="main-color" type="color_type" minOccurs="0" maxOccurs="1" />
285                     <xs:element name="gradient-color" type="color_type" minOccurs="0" maxOccurs="1" />
286                   </xs:sequence>
287                   <xs:attribute name="name" type="name_type" use="required" />
288                   <xs:attribute name="kind" type="brushkind_type" use="required" />
289                   <xs:attribute name="gradient-angle" type="xs:double" />
290                   <xs:attribute name="bitmap" type="xs:string" />
291                 </xs:complexType>
292               </xs:element>
293               <xs:element name="pen" minOccurs="0" maxOccurs="unbounded">
294                 <xs:complexType>
295                   <xs:attribute name="name" type="name_type" use="required" />
296                   <xs:attribute name="weight" type="pen_weight" use="required" />
297                   <xs:attribute name="endcap" type="penendcap_type" use="required" />
298                   <xs:attribute name="join" type="penjoin_type" use="required" />
299                   <xs:attribute name="brush" type="name_type" use="required"/>
300                 </xs:complexType>
301               </xs:element>
302               <xs:element name="font" minOccurs="0" maxOccurs="unbounded">
303                 <xs:complexType>
304                   <xs:attribute name="name" type="name_type" use="required" />
305                   <xs:attribute name="face" type="xs:string" use="required" />
306                   <xs:attribute name="size" type="xs:unsignedInt" use="required" />
307                   <xs:attribute name="bold" type="boolean_type" />
308                   <xs:attribute name="italic" type="boolean_type" />
309                   <xs:attribute name="underline" type="boolean_type" />
310                   <xs:attribute name="strike-out" type="boolean_type" />
311                 </xs:complexType>
312               </xs:element>
313               <xs:element name="bitmap" minOccurs="0" maxOccurs="unbounded">
314                 <xs:complexType>
315                   <xs:attribute name="name" type="name_type" use="required" />
316                   <xs:attribute name="filename" type="xs:string" use="required" />
317                 </xs:complexType>
318               </xs:element>
319             </xs:sequence>
320           </xs:complexType>
321         </xs:element>
322         <xs:element name="templates" minOccurs="0" maxOccurs="1">
323           <xs:complexType>
324             <xs:sequence>
325               <xs:element name="template" minOccurs="1" maxOccurs="unbounded">
326                 <xs:complexType>
327                   <xs:sequence>
328                     <xs:element name="information" minOccurs="0" maxOccurs="1">
329                       <xs:complexType>
330                         <xs:sequence>
331                           <xs:element name="property" minOccurs="1" maxOccurs="unbounded">
332                             <xs:complexType>
333                               <xs:attribute name="name" type="name_type" use="required" />
334                               <xs:attribute name="value" type="xs:string" use="required" />
335                             </xs:complexType>
336                           </xs:element>
337                         </xs:sequence>
338                       </xs:complexType>
339                     </xs:element>
340                     <xs:element name="properties" minOccurs="0" maxOccurs="1">
341                       <xs:complexType>
342                         <xs:sequence>
343                           <xs:element name="property" minOccurs="1" maxOccurs="unbounded">
344                             <xs:complexType>
345                               <xs:attribute name="name" type="name_type" use="required" />
346                               <xs:attribute name="type" type="property_type" use="required" />
347                             </xs:complexType>
348                           </xs:element>
349                         </xs:sequence>
350                       </xs:complexType>
351                     </xs:element>
352                     <xs:element name="content" minOccurs="1" maxOccurs="1">
353                       <xs:complexType>
354                         <xs:sequence>
355                           <xs:group ref="element_group" minOccurs="1" maxOccurs="unbounded"/>
356                         </xs:sequence>
357                       </xs:complexType>
358                     </xs:element>
359                   </xs:sequence>
360                   <xs:attribute name="name" type="name_type" use="required"/>
361                 </xs:complexType>
362               </xs:element>
363             </xs:sequence>
364           </xs:complexType>
365         </xs:element>
366       </xs:sequence>
367       <xs:attribute name="reference" type="xs:string" />
368     </xs:complexType>
369   </xs:element>
370 </xs:schema>

    最后附上一段比較簡單的例子:
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <irconfig xmlns="http://tempuri.org/irconfig.xsd">
 3   <resources>
 4     <brush name="blue-brush" kind="solid">
 5       <main-color r="0" g="0" b="255"/>
 6     </brush>
 7     <brush name="black-brush" kind="solid">
 8       <main-color r="0" g="0" b="0"/>
 9     </brush>
10     <pen name="border-pen" brush="black-brush" endcap="round" join="round" weight="1"/>
11   </resources>
12   <templates>
13     <template name="inactive">
14       <properties>
15         <property name="x" type="int"/>
16         <property name="y" type="int"/>
17         <property name="w" type="int"/>
18         <property name="h" type="int"/>
19       </properties>
20       <content>
21         <rectangle x="x" y="y" width="w" height="h" brush="blue-brush"/>
22       </content>
23     </template>
24     <template name="active">
25       <properties>
26         <property name="x" type="int"/>
27         <property name="y" type="int"/>
28         <property name="w" type="int"/>
29         <property name="h" type="int"/>
30       </properties>
31       <content>
32         <rectangle x="x" y="y" width="w" height="h" pen="border-pen" brush="blue-brush"/>
33       </content>
34     </template>
35   </templates>
36 </irconfig>
37 

    只要寫上了xmlns屬性,那么Visual Studio 2008就會自動讀取那個xsd然后提供自動補全功能了,寫起來無敵爽。
posted on 2009-08-07 07:29 陳梓瀚(vczh) 閱讀(3023) 評論(1)  編輯 收藏 引用 所屬分類: 2D

評論:
# re: C++界面庫:為Graphic Element Template做了一個XML Schema 2009-08-12 01:14 | ABC
謝謝你,學習了!  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女免费视频| 老司机精品视频一区二区三区| 国产麻豆日韩欧美久久| 欧美福利在线观看| 亚洲欧美成aⅴ人在线观看| 久久伊人精品天天| 狼人社综合社区| 欧美大学生性色视频| 亚洲激情在线| 性色av一区二区三区| 欧美一区二区三区免费观看视频| 亚洲福利电影| 亚洲美女网站| 黄色成人小视频| 亚洲韩国青草视频| 一区二区三区免费网站| 欧美一区国产一区| 在线中文字幕日韩| 亚洲电影在线免费观看| 亚洲美女一区| 在线观看亚洲精品| 一区二区国产精品| 亚洲精品日韩欧美| 欧美一区激情| 性欧美长视频| 亚洲天堂网站在线观看视频| 永久免费毛片在线播放不卡| 国产精品日韩精品欧美精品| 激情懂色av一区av二区av| 国产精品伊人日日| 欧美日韩中字| 影音先锋久久久| 午夜国产精品视频免费体验区| 蜜桃伊人久久| 老司机免费视频久久| 亚洲精品韩国| 久久人人爽人人爽| 国产一区二区毛片| 亚洲欧美制服中文字幕| 亚洲国内精品在线| 伊人天天综合| 欧美激情国产日韩| 久久久久国产成人精品亚洲午夜| 欧美a级一区二区| 美女日韩欧美| 一区二区三区www| 欧美激情视频在线播放| 永久免费毛片在线播放不卡| 欧美一区二区三区免费看| 日韩香蕉视频| 亚洲欧美成人综合| 性欧美暴力猛交69hd| 欧美一区二区三区免费大片| 欧美日韩精品一区二区三区| 亚洲精品影视在线观看| 亚洲桃花岛网站| 亚洲欧洲久久| 亚洲欧美高清| 久久精品水蜜桃av综合天堂| 国产精品在线看| 玉米视频成人免费看| 亚洲人被黑人高潮完整版| 久久婷婷人人澡人人喊人人爽| 午夜视频一区在线观看| 久久综合激情| 亚洲大黄网站| 亚洲视频导航| 9久re热视频在线精品| 国产精品99免费看| 午夜亚洲精品| 欧美在线看片| 在线播放一区| 亚洲男同1069视频| 亚洲小说欧美另类社区| 国产精品永久免费| 玖玖视频精品| 中文久久精品| 国产精品一区二区你懂的| 在线免费不卡视频| 欧美国产欧美亚州国产日韩mv天天看完整| 久久久一二三| 欧美午夜激情在线| 一区二区三区亚洲| 欧美国产日韩精品免费观看| 亚洲影院污污.| 国产午夜精品在线| 欧美电影免费观看大全| 欧美视频中文字幕在线| 亚洲国产高清一区二区三区| 午夜久久一区| 亚洲国产欧美不卡在线观看| 欧美精品一区二区在线播放| 国内精品一区二区| 欧美激情在线有限公司| 久久精品视频免费| 日韩一区二区精品视频| 欧美电影免费网站| 久久成人资源| 国产亚洲欧美一区在线观看 | 亚洲黄色性网站| 亚洲高清123| 欧美精品在线一区二区| 欧美在线一二三区| 欧美高清视频一区| 久久精品视频va| 欧美午夜精品电影| 欧美黄色aa电影| 久久久久久久久蜜桃| 在线亚洲一区观看| 蜜桃精品久久久久久久免费影院| 亚洲一区二区在线看| 另类国产ts人妖高潮视频| 性欧美精品高清| 亚洲免费网站| 国产精品免费看| 欧美顶级大胆免费视频| 国产亚洲精品久久久久婷婷瑜伽 | 136国产福利精品导航| 亚洲午夜女主播在线直播| 亚洲国产精品va在线看黑人动漫 | 欧美日韩在线一区| 欧美激情在线观看| 亚洲国产日韩欧美在线动漫| 欧美亚洲免费电影| 羞羞答答国产精品www一本| 欧美日韩免费高清一区色橹橹| 牛牛精品成人免费视频| 欧美sm视频| 久久综合九色九九| 国产综合婷婷| 亚洲第一在线| 在线不卡免费欧美| 亚洲日本成人| 最新国产拍偷乱拍精品 | 日韩视频在线免费观看| 亚洲精品少妇网址| 99日韩精品| 日韩午夜电影av| 欧美激情中文不卡| 亚洲人成人77777线观看| 亚洲麻豆av| 欧美日韩精品免费观看| 亚洲精品欧美专区| 国产伦精品一区二区三区在线观看| 99视频一区| 香蕉成人啪国产精品视频综合网| 国产精品久久国产精品99gif | 激情综合视频| 亚洲理论电影网| 国产精品久久久久久久久借妻| 性刺激综合网| 麻豆久久精品| 亚洲国产成人精品女人久久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜精品久久久久久久99水蜜桃| 欧美视频一区二区三区在线观看| 一本一本久久| 欧美一级视频免费在线观看| 国产综合av| 日韩一区二区免费看| 国产一区二区在线观看免费播放| 亚洲在线成人| 欧美va天堂| 亚洲一区精品视频| 久久最新视频| 亚洲人精品午夜| 欧美一区二区精品在线| 在线观看欧美黄色| 欧美日韩三区| 亚洲电影免费在线观看| 99re热这里只有精品免费视频| 欧美一区日韩一区| 欧美国产日韩一区二区三区| 中文在线资源观看视频网站免费不卡| 久久人人爽人人爽爽久久| 欧美福利一区二区| 亚洲在线观看视频| 在线日本高清免费不卡| 国产精品久久久免费| 亚洲免费成人| 久久久久青草大香线综合精品| 国产精品欧美一区二区三区奶水| 欧美成人精品一区| 国产一区视频网站| 欧美激情综合五月色丁香小说| 亚洲欧美精品suv| 午夜日韩视频| 亚洲人成小说网站色在线| 国产三区二区一区久久| 欧美日韩美女| 在线综合亚洲| 欧美国产日产韩国视频| 久久久久久久综合狠狠综合| 99国产麻豆精品| 欧美二区在线观看| 欧美在线日韩在线| 久久久免费精品| 国语自产在线不卡| 国产精品视频不卡| 欧美日韩调教|