亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? layout.h

?? 彩信瀏覽器
?? H
字號(hào):
/* * This file is part of Ambulant Player, www.ambulantplayer.org. * * Copyright (C) 2003-2007 Stichting CWI,  * Kruislaan 413, 1098 SJ Amsterdam, The Netherlands. * * Ambulant Player is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * Ambulant Player is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Ambulant Player; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *//*  * @$Id: layout.h,v 1.47 2007/02/12 14:14:09 jackjansen Exp $  */#ifndef AMBULANT_COMMON_LAYOUT_H#define AMBULANT_COMMON_LAYOUT_H#include <string>#include "ambulant/lib/gtypes.h"#include "ambulant/lib/node.h"#include "ambulant/lib/refcount.h"#include "ambulant/common/preferences.h"namespace ambulant {namespace lib {class document;class transition_info;} // namespace libnamespace common {class region_info;class animation_destination;class renderer; // forwardclass surface; // forwardclass gui_events; // forwardclass factories;typedef std::pair<lib::rect, lib::rect > tile_position; ///< Source and destination rect for a tile.typedef std::vector<tile_position> tile_positions; ///< List of tile_position/// Determine how to align an image in a region.class alignment {  public:	virtual ~alignment() {};		/// Return image point that should be painted at surface point get_surface_fixpoint().	virtual lib::point get_image_fixpoint(lib::size image_size) const = 0;		/// Return surface point at which image point get_image_fixpoint() should be painted.	virtual lib::point get_surface_fixpoint(lib::size surface_size) const = 0;};/// Receive notification when something has been animated./// Animation_notification is where an animator will send a notification when it/// is has changed parameters on an animation destination.class animation_notification {  public:	virtual ~animation_notification(){}    	/// Called by the animator after some animation parameter has changed.	virtual void animated() = 0;};/// The virtual baseclass for GUI-dependent window classes./// Together with gui_events it forms the interface between the AmbulantPlayer core/// and the embedding application. gui_window must be implemented by the embedder and/// is called from the core, gui_events is implemented by the core and is where the/// embedder can send its redraw requests and such.class gui_window {  protected:	gui_window(gui_events *handler)	:   m_handler(handler) {};  public:	virtual ~gui_window() {}		/// Signals that rectangle r may need to be redrawn.	virtual void need_redraw(const lib::rect &r) = 0;		/// Do any pending redraws right now	virtual void redraw_now() = 0;		/// Signals whether the core is interesting in mouse events and others.	virtual void need_events(bool want) = 0;  protected:	gui_events *m_handler;	///< The other side of the interface};/// User event types that may be used with gui_events::user_event()enum user_event_type {	user_event_click,		///< User clicked the mouse	user_event_mouse_over	///< User moved the mouse};/// API for receiving GUI events./// The pure virtual baseclass for both toplevel ambulant windows (as/// seen from the GUI code) and renderers./// It is used to commmunicate redraw requests and mouse clicks/// and such from the GUI window all the way down to/// the renderer.class gui_events  {  public:    virtual ~gui_events(){}      	/// Request to redraw a certain area.	virtual void redraw(const lib::rect &dirty, gui_window *window) = 0;		/// Signals a mouse click or mouse move.	virtual void user_event(const lib::point &where, int what = 0) = 0;		/// Signals that a transition in the given area has started.	/// This event goes through the gui_events interface because SMIL	/// semantics dictate that fill=transition ends on underlying	/// areas when a new transition starts.	virtual void transition_freeze_end(lib::rect area) = 0;};/// Interface for playables that actually render something./// Implemented by playable implementations that render to a region/// (as opposed to SMIL animation playables, etc).class renderer : public gui_events {  public:	virtual ~renderer() {};		/// Render to a specific surface.	/// Called (by the scheduler) after the playable is created, to	/// tell it where to render to.	virtual void set_surface(surface *destination) = 0;		/// Use alignment align for image display.	virtual void set_alignment(const alignment *align) = 0;		/// Apply an inTransition when starting playback.	virtual void set_intransition(const lib::transition_info *info) = 0;		/// Start an outTransition now.	virtual void start_outtransition(const lib::transition_info *info) = 0;		/// XXXX This is a hack.	virtual surface *get_surface() = 0;};/// bgrenderer is a pure virtual baseclass for background renderers./// It is really a subset of the renderer API with only the methods applicable/// to backgrounds.class bgrenderer : public gui_events {  public:	virtual ~bgrenderer() {};		/// Render to a specific surface.	virtual void set_surface(surface *destination) = 0;		/// Keep current onscreen bits as background	virtual void keep_as_background() = 0;		/// Highlight a region	virtual void highlight(gui_window *window) = 0;};// These two types enable a renderer to store private data on the surface// it renders to, and this data can be retrieved by the next instance of this// renderer. This can be used by renderers that use an external entity (such// as an HTML widget) to do the actual rendering.typedef lib::ref_counted renderer_private_data;typedef void* renderer_private_id;/// Pure virtual baseclass for a region of screenspace./// It is the only interface that renderers use when talking to regions, and regions/// use when talking to their parent regions.class surface {  public:	virtual ~surface() {};		/// The given renderer wants redraws and events from now on.	virtual void show(gui_events *renderer) = 0;		/// The given renderer no longer wants redraws and events.	virtual void renderer_done(gui_events *renderer) = 0;	/// The given rect r has changed and needs a redraw.	virtual void need_redraw(const lib::rect &r) = 0;		/// The whole region has changed and needs a redraw.	virtual void need_redraw() = 0;		/// Requests forwarding of mouse events.	virtual void need_events(bool want) = 0;		/// Signals that a transition has finished.	virtual void transition_done() = 0;	/// Signals that the current on-screen bits should be kept as background	virtual void keep_as_background() = 0;		/// Returns the region rectangle, (0, 0) based.	virtual const lib::rect& get_rect() const = 0;		/// Returns the region rectangle, topwindow-coordinate based and clipped.	virtual const lib::rect& get_clipped_screen_rect() const = 0;		/// Returns the gui_window coordinates for (0, 0).	virtual const lib::point &get_global_topleft() const = 0;		/// Determine where to draw an image.	/// For a given image size, return portion of source image to display, and where	/// to display it. The renderer must do the scaling.	virtual lib::rect get_fit_rect(const lib::size& src_size, lib::rect* out_src_rect, const alignment *align) const = 0;		/// Get object holding SMIL region parameters for querying.	virtual const region_info *get_info() const = 0;		/// Get the outermost surface for this surface.	virtual surface *get_top_surface() = 0;	/// Return true if the image needs to be tiled	virtual bool is_tiled() const = 0;		/// Given image size and region rectangle return a list of (srcrect, dstrect).	virtual tile_positions get_tiles(lib::size image_size, lib::rect surface_rect) const = 0;		/// Get the OS window for this surface.	virtual gui_window *get_gui_window() = 0;	/// Save a per-renderer private data pointer on the surface.	/// Renderer implementations that want to cache things between instantiations	/// on the same surface can use this to do so. As an example, various	/// HTML renderers use this to forestall having to destroy and immediately	/// re-create HTML widgets (which is not only time-consuming but also	/// causes a lot of flashing).	virtual void set_renderer_private_data(renderer_private_id idd, renderer_private_data* data) = 0;	/// Retrieve a per-renderer private data pointer previously stored with set_renderer_data.	virtual renderer_private_data* get_renderer_private_data(renderer_private_id idd) = 0;		/// Turn highlighting of the region on or off.	virtual void highlight(bool on) = 0;	};/// API for creating windows./// window_factory is subclassed by the various GUI implementations./// It should create a GUI window, and set up for that GUI window to forward/// its redraw requests to the given region.class AMBULANTAPI window_factory {  public:	virtual ~window_factory() {}		/// Get the default size for a new window	virtual lib::size get_default_size() { return lib::size(default_layout_width, default_layout_height); }	/// Create a new window.	virtual gui_window *new_window(const std::string &name, lib::size bounds, gui_events *handler) = 0;		/// Create a new bgrenderer.	virtual bgrenderer *new_background_renderer(const region_info *src) = 0;		/// Close a window.	virtual void window_done(const std::string &name) {} };/// Interface for storing SMIL layout information./// surface_template is an abstract baseclass used by the SMIL2 and MMS layout managers/// to create subregions in the region hierarchy. During playback it is also the destination/// for animation notifications.class surface_template : public animation_notification {  public:	virtual ~surface_template() {}		/// Create a new subregion.	virtual surface_template *new_subsurface(const region_info *info, bgrenderer *bgrend) = 0;		/// Get the surface corresponding to this region.	virtual surface *activate() = 0;};/// Interface for storing SMIL layout information./// Used by the SMIL2 layout_manager implementation to create/// surface_template objects for the toplevel windows.class surface_factory {  public:	virtual ~surface_factory() {}		/// Create a new toplevel region.	virtual surface_template *new_topsurface(const region_info *info, bgrenderer *bgrend, window_factory *wf) = 0;};/// Determine where to render media items./// The layout_manager manages the mapping of media items to regions.class layout_manager {  public:	virtual ~layout_manager() {};		/// Return the surface on which the given node should be rendered.	virtual surface *get_surface(const lib::node *node) = 0;		/// Returns the imagge aligment parameters for the given node.	virtual alignment *get_alignment(const lib::node *node) = 0;		/// Return the object that will receive notifications when the given node is animated.	virtual animation_notification *get_animation_notification(const lib::node *node) = 0;		/// Return the object that the animator will control for the given node.	virtual animation_destination *get_animation_destination(const lib::node *node) = 0;};/// Factory function for a SMIL2 layout_manager.AMBULANTAPI layout_manager *create_smil2_layout_manager(common::factories *factory,lib::document *doc);//layout_manager *create_mms_layout_manager();/// Factory function for a surface_factory implementation.AMBULANTAPI surface_factory *create_smil_surface_factory();	} // namespace common } // namespace ambulant#endif // AMBULANT_COMMON_LAYOUT_H

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视黄欧洲亚洲| 午夜精品福利一区二区蜜股av| 欧美在线观看视频一区二区| 六月丁香综合在线视频| 亚洲欧美欧美一区二区三区| 欧美一卡二卡三卡| 色屁屁一区二区| 国产夫妻精品视频| 日本亚洲一区二区| 夜夜精品视频一区二区| 国产亚洲制服色| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲国产精华液网站w | 国产精品乱码一区二区三区软件 | 99精品视频一区| 国产一区二区影院| 奇米四色…亚洲| 亚洲福中文字幕伊人影院| 亚洲国产精品精华液ab| 精品粉嫩超白一线天av| 欧美日韩国产综合久久| 99精品视频一区二区三区| 国产乱码精品一区二区三| 日本在线不卡视频| 婷婷综合在线观看| 亚洲愉拍自拍另类高清精品| 中文字幕一区二区三区乱码在线| 精品国产91久久久久久久妲己| 欧美午夜理伦三级在线观看| 91在线国内视频| 成人不卡免费av| 国产精品一区二区不卡| 精品中文字幕一区二区| 日韩成人av影视| 亚洲aⅴ怡春院| 亚洲一区二区三区四区五区黄| 国产精品久久久久久久久免费桃花 | 亚洲自拍偷拍麻豆| 一区二区在线观看视频| 亚洲欧洲99久久| 国产欧美日韩精品在线| 久久精品一二三| 久久精品免费在线观看| 久久综合久久综合亚洲| 久久久国产精华| 国产农村妇女精品| 欧美国产亚洲另类动漫| 中文字幕在线播放不卡一区| 国产精品嫩草影院com| 一区二区中文字幕在线| 中文字幕一区在线观看视频| 中文字幕综合网| 亚洲理论在线观看| 亚洲18色成人| 免费国产亚洲视频| 极品瑜伽女神91| 丁香啪啪综合成人亚洲小说| 国产91精品久久久久久久网曝门| 丁香婷婷深情五月亚洲| 成人午夜精品在线| 在线观看av一区二区| 欧美剧在线免费观看网站| 日韩视频在线你懂得| 精品国产乱码久久| 欧美激情一区二区三区在线| 国产精品传媒视频| 亚洲免费伊人电影| 天天av天天翘天天综合网| 老色鬼精品视频在线观看播放| 国产美女在线观看一区| 成人毛片在线观看| 欧美日韩国产天堂| 日韩精品一区二| 欧美国产激情一区二区三区蜜月| 亚洲欧美日本在线| 久久精品理论片| 91在线视频免费91| 日韩一级免费观看| 中文字幕在线观看一区二区| 亚洲自拍都市欧美小说| 激情综合色综合久久综合| 成人av网址在线| 欧美精品久久一区| 国产精品麻豆99久久久久久| 亚洲一级不卡视频| 国产一区91精品张津瑜| 欧美曰成人黄网| 欧美不卡视频一区| 欧洲av一区二区嗯嗯嗯啊| 精品国产1区二区| 自拍偷拍亚洲综合| 日产欧产美韩系列久久99| 国产成人综合亚洲网站| 91蜜桃网址入口| 日韩视频在线你懂得| 国产精品乱人伦中文| 亚洲愉拍自拍另类高清精品| 国产乱人伦精品一区二区在线观看| 不卡的看片网站| 4438x成人网最大色成网站| 国产亚洲自拍一区| 亚洲成av人片观看| 国产一区亚洲一区| 制服丝袜一区二区三区| 亚洲国产电影在线观看| 午夜电影一区二区| 成人黄色软件下载| 日韩欧美高清在线| 欧美—级在线免费片| 久久成人18免费观看| 色999日韩国产欧美一区二区| 日韩视频永久免费| 一区二区三区欧美亚洲| 国产一区二区电影| 欧美色图12p| 亚洲情趣在线观看| 国产一区二区女| 欧美日韩不卡在线| 亚洲人成精品久久久久久| 精品无人码麻豆乱码1区2区| 欧美视频一区二| 一区精品在线播放| 国产麻豆欧美日韩一区| 欧美日韩精品三区| 亚洲欧美福利一区二区| 国产一区欧美日韩| 91精品啪在线观看国产60岁| 中文字幕亚洲精品在线观看| 狠狠狠色丁香婷婷综合激情| 欧美性xxxxxxxx| 亚洲日本va午夜在线影院| 久久99精品久久久久久国产越南| 国产不卡在线视频| 精品国内片67194| 天天av天天翘天天综合网 | 色偷偷成人一区二区三区91 | 中文字幕av一区 二区| 久久疯狂做爰流白浆xx| 欧美美女视频在线观看| 亚洲欧美偷拍卡通变态| 成人性视频网站| 久久久久青草大香线综合精品| 麻豆国产欧美一区二区三区| 欧美精品日韩综合在线| 免费一级欧美片在线观看| 欧美人妇做爰xxxⅹ性高电影| 一区二区不卡在线播放| 色综合天天综合在线视频| 国产精品国产三级国产aⅴ无密码| 琪琪久久久久日韩精品| 日韩精品一区二区三区四区视频| 亚洲bdsm女犯bdsm网站| 欧日韩精品视频| 午夜电影网亚洲视频| 6080午夜不卡| 香蕉加勒比综合久久| 555夜色666亚洲国产免| 日韩国产精品久久久| 欧美精品日韩一区| 欧美96一区二区免费视频| 91精品国产综合久久久蜜臀粉嫩 | 亚洲国产综合色| 欧美日韩一二区| 天堂一区二区在线免费观看| 欧美一区二区三区免费视频 | 中文字幕五月欧美| 91在线视频网址| 亚洲综合色自拍一区| 日韩三级在线观看| 国产一区二区三区最好精华液| 精品处破学生在线二十三| 国产美女主播视频一区| 国产精品美女久久久久高潮| 国产精品白丝jk白祙喷水网站| 亚洲免费观看高清在线观看| 精品视频全国免费看| 日韩av中文字幕一区二区三区| 日韩欧美中文字幕精品| 国产一区二区三区黄视频| 一区二区三区在线观看欧美| 欧美日韩国产精选| 国内精品写真在线观看| 国产精品国产精品国产专区不片| 粉嫩aⅴ一区二区三区四区五区| 一区二区三区欧美亚洲| 日韩欧美国产综合| 成人永久aaa| 丝袜美腿高跟呻吟高潮一区| 国产婷婷色一区二区三区四区| 欧美日韩一区二区欧美激情 | 91免费版在线看| 美女视频黄 久久| 国产精品国产三级国产三级人妇| 成人h精品动漫一区二区三区| 亚洲午夜免费视频| 国产亚洲一本大道中文在线| 91传媒视频在线播放| 国产福利精品一区二区| 一二三四区精品视频| 久久九九影视网|