TouchVG framework
|
内核视图分发器类 更多...
#include <gicoreview.h>
Public 类型 | |
enum | { kNoCmdType = -1, kTestType = 0, kNormalType = 1 } |
Public 类型 继承自 MgCoreView | |
enum | { kMgSquare, kMgClosed, kMgFixedLength, kMgFixedSize, kMgRotateDisnable, kMgLocked, kMgNoSnap, kMgNoAction, kMgNoClone, kMgHideContent, kMgNoDel, kMgCanSelLocked, kMgNotAddRel, kMgNotShowSnap, kMgCanAddVertex } |
Public 成员函数 | |
void | destoryView (GiView *view) |
销毁内核视图 更多... | |
long | acquireGraphics (GiView *view) |
获取前端 GiGraphics 的句柄 更多... | |
void | releaseGraphics (long gs) |
释放 GiGraphics 句柄 更多... | |
int | acquireFrontDocs (mgvector< long > &docs) |
获取前端图形文档的句柄 更多... | |
int | getSkipDrawIds (mgvector< int > &ids) |
获取不在静态图形中显示的图形ID 更多... | |
int | acquireDynamicShapesArray (mgvector< long > &shapes) |
获取前端图形列表的句柄 更多... | |
int | drawAll (long doc, long gs, GiCanvas *canvas) |
显示所有图形 更多... | |
int | drawAll (const mgvector< long > &docs, long gs, GiCanvas *canvas) |
显示所有图形 更多... | |
int | drawAll (const mgvector< long > &docs, long gs, GiCanvas *canvas, const mgvector< int > &ignoreIds) |
显示除特定ID外的图形 更多... | |
int | drawAppend (long doc, long gs, GiCanvas *canvas, int sid) |
显示新图形 更多... | |
int | dynDraw (long shapes, long gs, GiCanvas *canvas) |
显示动态图形 更多... | |
int | dynDraw (const mgvector< long > &shapes, long gs, GiCanvas *canvas) |
显示动态图形 更多... | |
int | drawAll (GiView *view, GiCanvas *canvas) |
显示所有图形,主线程中用 更多... | |
int | drawAppend (GiView *view, GiCanvas *canvas, int sid) |
显示新图形,主线程中用 更多... | |
int | dynDraw (GiView *view, GiCanvas *canvas) |
显示动态图形,主线程中用 更多... | |
int | setBkColor (GiView *view, int argb) |
设置背景颜色 更多... | |
void | onSize (GiView *view, int w, int h) |
设置视图的宽高 更多... | |
void | setViewScaleRange (GiView *view, float minScale, float maxScale) |
设置显示比例范围 更多... | |
void | setPenWidthRange (GiView *view, float minw, float maxw) |
设置画笔宽度范围 更多... | |
void | setGestureVelocity (GiView *view, float vx, float vy) |
bool | onGesture (GiView *view, GiGestureType type, GiGestureState state, float x, float y, bool switchGesture=false) |
传递单指触摸手势消息 更多... | |
bool | twoFingersMove (GiView *view, GiGestureState state, float x1, float y1, float x2, float y2, bool switchGesture=false) |
传递双指移动手势(可放缩旋转) 更多... | |
bool | submitBackDoc (GiView *view, bool changed) |
提交静态图形到前端,在UI的regen回调中用 更多... | |
bool | submitDynamicShapes (GiView *view) |
提交动态图形到前端,需要并发保护 更多... | |
float | calcPenWidth (GiView *view, float lineWidth) |
计算画笔的像素宽度 更多... | |
GiGestureType | getGestureType () |
得到当前手势类型 更多... | |
GiGestureState | getGestureState () |
得到当前手势状态 更多... | |
bool | isZoomEnabled (GiView *view) |
是否允许放缩显示 更多... | |
void | setZoomEnabled (GiView *view, bool enabled) |
设置是否允许放缩显示 更多... | |
int | exportSVG (long doc, long gs, const char *filename) |
导出图形到SVG文件 更多... | |
int | exportSVG (GiView *view, const char *filename) |
导出图形到SVG文件,主线程中用 更多... | |
bool | startRecord (const char *path, long doc, bool forUndo, long curTick, MgStringCallback *c=(MgStringCallback *) 0) |
开始录制图形,自动释放,在主线程用 更多... | |
void | stopRecord (bool forUndo) |
停止录制图形 更多... | |
bool | recordShapes (bool forUndo, long tick, long changeCount, long doc, long shapes) |
录制图形,自动释放 更多... | |
bool | recordShapes (bool forUndo, long tick, long changeCount, long doc, long shapes, const mgvector< long > *exts, MgStringCallback *c=(MgStringCallback *) 0) |
录制图形,自动释放 更多... | |
bool | undo (GiView *view) |
撤销, 需要并发访问保护 更多... | |
bool | redo (GiView *view) |
重做, 需要并发访问保护 更多... | |
bool | onPause (long curTick) |
暂停 更多... | |
bool | onResume (long curTick) |
继续 更多... | |
bool | restoreRecord (int type, const char *path, long doc, long changeCount, int index, int count, int tick, long curTick) |
恢复录制 更多... | |
void | traverseOptions (MgOptionCallback *c) |
遍历选项 更多... | |
void | setOptionBool (const char *name, bool value) |
设置或清除布尔选项值 更多... | |
void | setOptionInt (const char *name, int value) |
设置或清除整型选项值 更多... | |
void | setOptionFloat (const char *name, float value) |
设置或清除浮点型选项值 更多... | |
void | setOptionString (const char *name, const char *value) |
设置或清除文本选项值 更多... | |
void | release () |
释放引用计数,为0时销毁对象 更多... | |
void | addRef () |
添加引用计数 更多... | |
bool | isPressDragging () |
是否按下并拖动 更多... | |
bool | isDrawingCommand () |
当前是否为绘图命令 更多... | |
bool | isCommand (const char *name) |
当前是否为指定名称的命令 更多... | |
long | viewDataHandle () |
内部数据句柄, 可转换为 GiCoreViewData 指针 更多... | |
long | viewAdapterHandle () |
命令视图回调适配器的句柄, 可转换为 MgView 指针 更多... | |
long | backDoc () |
图形文档的句柄, 用 MgShapeDoc::fromHandle() 转换 更多... | |
long | backShapes () |
当前图形列表的句柄, 用 MgShapes::fromHandle() 转换 更多... | |
long | acquireFrontDoc () |
获取前端图形文档的句柄, 需要并发访问保护 更多... | |
long | acquireFrontDoc (long playh) |
获取指定数据源的前端图形文档的句柄 更多... | |
long | acquireDynamicShapes () |
获取动态图形列表的句柄, 需要并发访问保护 更多... | |
bool | isDrawing () |
返回是否正在绘制静态图形 更多... | |
bool | isZooming () |
返回是否正在动态放缩显示 更多... | |
bool | isStopping () |
返回是否需要停止绘图 更多... | |
int | stopDrawing (bool stop=true) |
标记需要停止绘图 更多... | |
bool | isUndoRecording () const |
是否正在Undo录制 更多... | |
bool | isRecording () const |
是否正在录屏 更多... | |
bool | isPlaying () const |
是否处于播放模式 更多... | |
bool | isPaused () const |
返回是否已暂停 更多... | |
long | getRecordTick (bool forUndo, long curTick) |
得到已开始的相对毫秒时刻 更多... | |
bool | isUndoLoading () const |
是否正加载文档 更多... | |
bool | canUndo () const |
能否撤销 更多... | |
bool | canRedo () const |
能否重做 更多... | |
int | getRedoIndex () const |
得到当前Undo位置 更多... | |
int | getRedoCount () const |
得到Undo文件数 更多... | |
long | getFrameTick () |
得到当前帧的相对毫秒时刻 更多... | |
int | getFrameFlags () |
得到当前帧的改动标志 更多... | |
int | getFrameIndex () const |
得到已播放的帧数 更多... | |
const char * | getCommand () const |
返回当前命令名称 更多... | |
bool | setCommand (const char *name, const char *params="") |
启动命令 更多... | |
bool | switchCommand () |
切换到下一命令 更多... | |
bool | doContextAction (int action) |
执行上下文动作 更多... | |
void | clearCachedData () |
释放临时数据内存,未做线程保护 更多... | |
int | addShapesForTest (int n=1000) |
添加测试图形 更多... | |
int | getShapeCount () |
返回后端文档的图形总数 更多... | |
int | getShapeCount (long doc) |
返回前端文档的图形总数 更多... | |
int | getUnlockedShapeCount (int type=0) |
返回未锁定的可见图形的个数 更多... | |
int | getVisibleShapeCount (int type=0) |
返回可见图形的个数 更多... | |
long | getChangeCount () |
返回静态图形改变次数,可用于检查是否需要保存 更多... | |
long | getDrawCount () const |
返回已绘制次数,可用于录屏 更多... | |
int | getSelectedShapeCount () |
返回选中的图形个数 更多... | |
int | getSelectedShapeType () |
返回选中的图形的类型, MgShapeType 更多... | |
int | getSelectedShapeID () |
返回当前选中的图形的ID,选中多个时只取第一个 更多... | |
int | getSelectedHandle () |
返回当前线性图形中当前控制点序号 更多... | |
void | getSelectedShapeIDs (mgvector< int > &ids) |
返回当前选中的图形的ID 更多... | |
void | setSelectedShapeIDs (const mgvector< int > &ids) |
选中指定ID的图形 更多... | |
void | clear () |
删除所有图形,包括锁定的图形 更多... | |
bool | loadFromFile (const char *vgfile, bool readOnly=false) |
从文件或JSON串中加载 更多... | |
bool | saveToFile (long doc, const char *vgfile, bool pretty=false) |
保存图形 更多... | |
bool | loadShapes (MgStorage *s, bool readOnly=false) |
从数据源中加载图形 更多... | |
bool | saveShapes (long doc, MgStorage *s) |
保存图形到数据源 更多... | |
const char * | getContent (long doc) |
得到图形的JSON内容,需要调用 freeContent() 更多... | |
void | freeContent () |
释放 getContent() 产生的缓冲资源 更多... | |
bool | setContent (const char *content, bool readOnly=false) |
从JSON内容中加载图形 更多... | |
bool | zoomToInitial () |
放缩到文档初始状态 更多... | |
bool | zoomToExtent (float margin=2) |
放缩显示全部内容到视图区域 更多... | |
bool | zoomToModel (float x, float y, float w, float h, float margin=2) |
放缩显示指定范围到视图区域 更多... | |
bool | zoomPan (float dxPixel, float dyPixel, bool adjust=true) |
平移显示 更多... | |
GiContext & | getContext (bool forChange) |
当前绘图属性,可用 calcPenWidth() 计算线宽 更多... | |
void | setContext (const GiContext &ctx, int mask, int apply) |
绘图属性改变后提交更新 更多... | |
void | setContext (int mask) |
绘图属性改变后提交更新 更多... | |
bool | getShapeFlag (int sid, int bit) |
返回图形标志, kMgNoSnap 等位值 更多... | |
bool | setShapeFlag (int sid, int bit, bool on) |
设置图形标志 更多... | |
void | setContextEditing (bool editing) |
设置线条属性是否正在动态修改. getContext(false)将重置为未动态修改. 更多... | |
int | addImageShape (const char *name, float width, float height) |
添加一个容纳图像的矩形图形 更多... | |
int | addImageShape (const char *name, float xc, float yc, float w, float h, int tag) |
添加一个容纳图像的矩形图形 更多... | |
bool | getImageSize (mgvector< float > &info, int sid) |
获取图像(MgImageShape)的原始图像宽高、显示宽高、角度(orgw, orgh, w, h, angle) 更多... | |
bool | hasImageShape (long doc) |
返回是否有容纳图像的图形对象 更多... | |
int | findShapeByImageID (long doc, const char *name) |
查找指定名称的图像对应的图形对象ID 更多... | |
int | findShapeByTag (long doc, int tag) |
查找指定Tag的图形对象ID 更多... | |
int | traverseImageShapes (long doc, MgFindImageCallback *c) |
遍历有容纳图像的图形对象 更多... | |
bool | getViewModelBox (mgvector< float > &box) |
返回当前视图区域的模型坐标范围,模型坐标(left, top, right, bottom) 更多... | |
bool | getModelBox (mgvector< float > &box) |
返回后端文档的模型坐标范围,模型坐标(left, top, right, bottom) 更多... | |
bool | getModelBox (mgvector< float > &box, int shapeId) |
返回后端文档中指定ID的模型坐标范围,模型坐标(left, top, right, bottom) 更多... | |
bool | getHandlePoint (mgvector< float > &xy, int shapeId, int index) |
得到指定序号的控制点的模型坐标 更多... | |
bool | getDisplayExtent (mgvector< float > &box) |
返回后端文档的图形显示范围,四个点单位坐标(left, top, right, bottom) 更多... | |
bool | getDisplayExtent (long doc, long gs, mgvector< float > &box) |
返回前端文档的图形显示范围,四个点单位坐标(left, top, right, bottom) 更多... | |
bool | getBoundingBox (mgvector< float > &box) |
返回选择包络框,四个点单位坐标(left, top, right, bottom) 更多... | |
bool | getBoundingBox (mgvector< float > &box, int shapeId) |
返回后端文档中指定ID的图形的包络框,四个点单位坐标(left, top, right, bottom) 更多... | |
bool | getBoundingBox (long doc, long gs, mgvector< float > &box, int shapeId) |
返回前端文档中指定ID的图形的包络框,四个点单位坐标(left, top, right, bottom) 更多... | |
bool | displayToModel (mgvector< float > &d) |
视图坐标转为模型坐标,可传入2或4个分量 更多... | |
int | importSVGPath (long shapes, int sid, const char *d) |
用SVG路径的d坐标序列创建或设置图形形状,成功返回图形ID(未重新显示),失败返回0 更多... | |
int | exportSVGPath (long shapes, int sid, char *buf, int size) |
输出SVG路径的d坐标序列,返回复制的长度或应分配的长度(不含结束符) 更多... | |
Public 成员函数 继承自 MgCoreView | |
virtual | ~MgCoreView () |
long | toHandle () const |
得到句柄,用于跨库转换 更多... | |
long | getPlayingTick (long curTick) |
得到已播放的毫秒数 更多... | |
void | getCommand (MgStringCallback *c) |
得到当前命令名称 更多... | |
bool | saveToFile (const char *vgfile, bool pretty=false) |
保存图形,主线程中用 更多... | |
bool | saveShapes (MgStorage *s) |
保存图形到数据源,主线程中用 更多... | |
const char * | getContent () |
得到图形内容,需调用 freeContent(),主线程中用 更多... | |
void | getContent (long doc, MgStringCallback *c) |
得到图形的JSON内容,自动 freeContent() 更多... | |
void | getContent (MgStringCallback *c) |
得到图形的JSON内容,主线程中用 更多... | |
bool | exportSVGPath2 (MgStringCallback *c, long shapes, int sid) |
输出SVG路径的d坐标序列 更多... | |
静态 Public 成员函数 | |
static GiCoreView * | createView (GiView *view, int type=kNormalType) |
创建内核视图 更多... | |
static GiCoreView * | createMagnifierView (GiView *newview, GiCoreView *mainView, GiView *mainDevView) |
创建放大镜视图 更多... | |
static void | releaseDocs (const mgvector< long > &docs) |
释放文档句柄 更多... | |
static void | releaseShapesArray (const mgvector< long > &shapes) |
释放图形列表句柄 更多... | |
static void | setScreenDpi (int dpi, float factor=1.f) |
设置屏幕的点密度和UI放缩系数 更多... | |
static int | getVersion () |
得到内核版本号 更多... | |
静态 Public 成员函数 继承自 MgCoreView | |
static MgCoreView * | fromHandle (long h) |
转为对象 更多... | |
static void | releaseDoc (long doc) |
释放 acquireFrontDoc() 得到的文档句柄 更多... | |
static void | releaseShapes (long shapes) |
释放 acquireDynamicShapes() 得到的图形列表句柄 更多... | |
Private 成员函数 | |
GiCoreView (GiCoreView *mainView=(GiCoreView *) 0) | |
GiCoreView (GiView *view, int type) | |
virtual | ~GiCoreView () |
void | createView_ (GiView *view, int type=1) |
创建内核视图 更多... | |
void | createMagnifierView_ (GiView *newview, GiView *mainView) |
创建放大镜视图 更多... | |
Private 属性 | |
GiCoreViewImpl * | impl |
volatile long | refcount |
内核视图分发器类
本对象拥有图形文档对象,负责显示和手势动作的分发。