摘要:
AbiWord Documentation【转】IntroductionOne of the major bits of AbiWord word processing code is the Piece TablePieceTableTodo:Add more class names / links to sources.IntroductionApt_PieceTableis the data structure used to represent the document. It presents an interface to access the document content a 阅读全文
摘要:
abiWord中数据的存储第一部分:abiWord中数据的存储一、哈希表是根据一定的算法在表中的相应位置存储数据的一种容器,在abiWord程序中这个表相当于一个数组。下面列出了ABIWORD哈希表的构成.在列举出表的构成之后,对于构成哈希表的各个组成部分分别进行说明.1、abiWord中的哈希表template class ABI_EXPORT UT_GenericStringMap{//嵌套类UT_Cursor{ …}//代表实际存储的容器hash_slot * m_pMapping;};//哈希表中键的封装类class key_wrapper{private: UT_String m_v 阅读全文
摘要:
Text Editor 的 Piece Table 结构Charles Crowley 在Data Structures for Text Sequences中描述了一种用于存储和编辑文本的数据结构 Piece Table。这种结构被大多数 Professional 的文本编辑器/字处理器所使用。另一种广为应用的(更简单)的数据结构是 Gap,最初被用在 Emacs 中,现在的 Scintilla,Java Swing Text Field 等文本编辑组建都使用这种结构。Charles Crowley 的文章中有详细的关于这两种结构的性能比较。在处理大型文档的时候,“Piece Table + 阅读全文
摘要:
Text Editor Design 资料整理Design and Implementation of a Win32 Text EditorThe Craft of Text Editing, or Emacs for the Modern World, by Craig A. Finseth.PDF Here!Data Structures for Text Sequences, by Charles Crowley.PDF Here!ned – Text Editor of the FutureAbiWord DevelopementImproving the AbiWord’s Pie 阅读全文
摘要:
Abiword页面布局 AP_Win32FrameImpl::_DocumentWndProc 文档窗口过程函数在WM_SIZE消息中设置FV_View对象的整体尺寸,跟窗体的:设备单位 转换成:布局单位。m_iWindowWidth = 19695,m_iWindowHeight= 8520设备单位和布局单位的比例是:1:15。 在设置尺寸是会根据文档窗体的实际尺寸利用下面的公式转换: m_iWindowWidth= 实际窗体尺寸*1440*100/96*100 1440 是:#define UT_LAYOUT_RESOLUTION1440,是版面设计的分辨率,在ut_units.cpp的单 阅读全文
摘要:
Abiword中鼠标在文档中位置定位利用鼠标消息获取鼠标在客户区的坐标信息FV_View::_getMouseContext函数,layout view mouse pos x, pos y减去页面的外边距FV_View::_getPageForXY,具体算法参考:Abiword页面布局,系统默认的左边距是:1500,上边距是:375减去页面内边距fp_Page::mapXYToPosition函数中调用fp_VerticalContainer::mapXYToPosition(列)时,自动减去页面内边距。也可以理解成列的外边距,默认是1440。根据页面列的设置,循环所有的列用于确定坐标是否包 阅读全文
摘要:
TEXTMETRIC 结构详解函数GetTextMetrics可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示:typedef struct taTEXTMETRICThe TEXTMETRIC structure contains basic information about a physical font. All sizes are specified in logical units; that is, they depend on the current mapping mode of the display context.typede 阅读全文
摘要:
Abiword中自定义字段对象流程分析1、定义对象的id,ap_String_Id.hdcl(FIELD_Type_Custom, "Custom") //字段所属分类dcl(FIELD_Custom_FieldCustom, "FieldCustom") // 字段2、继承fp_FieldRun类,实现自定义字段3、fp_Fields.h_FIELDTYPE(CUSTOM, AP_STRING_ID_FIELD_Type_Custom)_FIELD(CUSTOM, AP_STRING_ID_FIELD_Custom_FieldCustom, Custo 阅读全文
摘要:
Abiword中字符操作一、关于不同字符的宏定义typedef gunichar UT_UCS4Char;typedef guint16 UT_UCS2Char;typedef UT_UCS4CharUT_UCSChar;/* Unicode */typedef guint32 gunichar;typedef guint16 gunichar2;AbiWord is now fully converted to using 32-bit Unicode internally在Abiword内部完全转换成32-bit Unicode 表示。二、针对UT_UCS*Char 的常用函数,参考:af 阅读全文
摘要:
Abiword菜单对象的维护1.在ap_Menu_Id.h文件中定义菜单的ID利用menuitem宏和ap_Menu_Id_List.h头文件定义一个枚举类型:_Ap_Menu_Id2.在ap_String_Id文件中定义菜单的显示名称和状态栏的提示信息3.Ev_EditMethod中定义利用typedef关键字定义EV_EditMethod_Fn函数类型4.在ap_EditMethod中定义EV_EditMethod_Fn的静态变量和EV_EditMethod对象的数组。并利用Defun(fn),Defun0(fn),Defun1(fn)宏定义各个函数5.在ap_Menu_ActionSet 阅读全文
摘要:
Abiword对话框资源对话框常用尺寸宽、高:276、310,字号:9号,字体:"宋体"宽、高:242、279,字号:9号,字体:"宋体"宽、高:269、306,字号:9号,字体:"宋体"模板的定义自定义对话框模板文件,在Abiword中所有的资源文件存储在ap_Win32Resources.rc2中。把对话框模板设计好后存成.rc2文件,并且包含到ap_Win32Resources.rc2中。在ap_Dialog_Id.h中定义对话框枚举类型。在ap_Win32Dialog_All.h中声明对话框在AP_Win32DialogFac 阅读全文
摘要:
Abiword 编辑事件设计Abiword作为专业的字处理软件,其各种编辑事件的处理封装比较巧妙。其中包含鼠标、键盘、字符等各种操作的封装。本文将详细记录事件的处理各个类的设计概要。一、EV_EditMethod类 该类的定义:具有根据名字调用方法的能力。** The EditMethod mechanism provides essentially a 'call-by-name'** capability. A key, mouse, menu, or toolbar event may be bound** to a 'named' function (o 阅读全文
摘要:
GDI对象的初始化一、GR_GraphicsFactory对象的初始化在XAP_App对象的构造函数中创建GR_GraphicsFactory对象。在XAP_Win32App构造函数中,调用GR_GraphicsFactory对象的registerClass函数初始化m_vAllocators、m_vDescriptors、m_vClassIds集合成员变量,前两个分别是GR_Allocator、GR_Descriptor函数指针。二、GR_Graphics对象的初始化在XAP_Win32FrameImpl::_createDocumentWindow函数中,根据各个窗口句柄创建GR_Grap 阅读全文
摘要:
属性/样式初始化【转】一、PP_AttrProp类 1、类功能说明,代表了一个相同类型的属性/样式集合 PP_AttrProp captures the complete set of XML and CSS Attributes/Properties for a piece of the document. These are generally created by the file-reader. Attributes represent all of the attribute/value pairs in the XML with the exception of the PT_PR 阅读全文
摘要:
Abiword文档对象初始化新建或开发文档PD_Document类的实例化如果是新建文档,调用PD_Document::newDocument函数创建新文档,或则调用PD_Document::readFromFile打开一个文档。pt_PieceTable类的实例化,通过该类初始化文档的物理存储架构。也就是PieceTable数据结构的实现pf_Frag_Strux_Section类,该类实例化后放入pf_Fragments中。pf_Frag_Strux_Block 类,同样放入pf_Fragments中。pf_Frag 类,实例化pf_Frag::PFT_EndOfDoc的对象,表示文档结尾 阅读全文
摘要:
AbiWordDevelopmentContents1AbiWord Development Area1.1Place content here related to AbiWord Development.1.1.1General Description of AbiWord's Layout code1.1.2Proposals and Whacky Ideas1.1.3Accessibility1.1.4Online document reader1.1.4.1Benefits of using abiword over a browser1.1.5Use a cooperate 阅读全文
摘要:
Layout CodeContainer classesHere is the general description of how AbiWord supports layoutobjects like tables, footnotes, text frames, positioned images and to allow text to flow around images and other embedded objects. Note that this text originates from around 2001 and almost certainly contains i 阅读全文
摘要:
AbiWord Documentation【转】IntroductionOne of the major bits of AbiWord word processing code is the Piece TablePieceTableTodo:Add more class names / links to sources.IntroductionApt_PieceTableis the data structure used to represent the document. It presents an interface to access the document content a 阅读全文
摘要:
【转】1、正文列选中:按住ALT+鼠标选择。2、插入“域”--索引和目录(链接与引用),一次性插入目录,先插入索引与目录,RD。全部插入所有文件的RD后,然后再插入TOC。3、F4:重复上一操作。4、按住ALT+鼠标拖动表格线,可以连续性移动表格线。5、字号与磅值对照:字号初号小初一号小一二号小二三号小三四号小四五号小五六号小六七号八号磅4236262422181615141210.597.56.55.556、使用分节符,而不是使用分页符,更不要使用硬回车来分页,要不前面一变动,后面跟着都变了。使用分节的好处是可以控制文档内可以有不同的页眉、页脚,以及在同一个页面上有不同的设置,在同一个文档里 阅读全文
摘要:
【转】Text Model 存储文本以及相应属性的模型,主要有两种不同的实现策略:树形结构和平面结构。树形结构类似 Dom,可以很好的表现结构化文档,但是比较复杂。平面结构相对简单的多,大多数的编辑器(e.g. Emacs),字处理器(e.g. AbiWord, OpenOffice)都用的是平面结构。Text Model Coords 用来在 Text Model 中定位的坐标系。对于树形结构的 Text Model 其定位方式为节点链接(或指向节点的路径 e.g. XPath)以及节点内偏移值。对于平面结构则仅仅是一个索引值。Text Presentation 展示文本的模型,一般分别为 阅读全文