紅孩兒編輯器的詳細設計第四部分
紅孩兒編輯器的詳細設計第四部分
系統中主要的資料結構設計
1快取的結構
二維的陣列,還有一個棧,是一個修改的日誌 包括操作型別,位置,原內容,新內容。
2狀態的結構
是一個物件,它有屬性是檔名,當前的游標行號,當前游標的列號,
左上角頂點處的位置在檔案中的行號,列號
3配置的結構
是一個物件,它有屬性 是否是語法高亮顯示,是否是程式碼摺疊, 是否是括號匹配,
是否是自動換行,是否是顯示行號,是否是插入模式,輸入法,字型大小,字型名稱
查詢的配置,作為一個子物件,它也有自己的屬性例如,查詢方向,是否大小寫匹配,
是否支援正則表示式,正則表示式的內容,是查詢一次還是多次,查詢範圍是全文還是限定區域
4編輯器主體物件的結構
這個物件有許多的屬性,例如,游標的當前的行號,列號,游標標記
編輯的寬度和高度,單行的高度,一個字的寬度,操作游標定位的方法
5 HTML5的畫布物件
這個物件的屬性有填充格式,畫線的格式,填充矩形的方法,畫線矩形的方法。
相關推薦
紅孩兒編輯器的詳細設計第四部分
紅孩兒編輯器的詳細設計第四部分 系統中主要的資料結構設計 1快取的結構 二維的陣列,還有一個棧,是一個修改的日誌 包括操作型別,位置,原內容,新內容。 2狀態的結構 是一個物件,它有屬性是檔名,當前的游標行號,當前游標的列號, 左上角頂點處的位置在檔案中的行號,列號 3配置的結構 是
紅孩兒編輯器模組設計7
紅孩兒編輯器模組設計7 首次明確一下如下的相關的概念 螢幕 與螢幕的可見區,快取與檔案 螢幕與螢幕的可見區的關係,就好像是拿著放大鏡看地圖。 地圖很大,用放大鏡來移動著,看一個部分。 轉換公式是 螢幕的可見區的相對的行號+左上角的頂點在螢幕中的行數=螢幕中的絕對的行號 螢幕的可見區的相對
紅孩兒編輯器的詳細設計第三部分
紅孩兒編輯器的詳細設計第三部分 這一部分詳細地列出各個模組的介面定義 輸入子系統 鍵盤模組 key_operation() key_up() 滑鼠模組 input(val) 核心控制子系統 控制模組 &nbs
紅孩兒編輯器的詳細設計第二部分
紅孩兒編輯器的詳細設計第二部分 第一部分是各個子系統的架構圖 根據之前的設計文件,對之前的架構圖進行細化得到如下的架構圖 第二部分是各個子系統的模組的名稱定義 key_map.js 是輸入子系統的鍵值對映的模組,檔案中只有鍵的常量定義, 這是資料檔案的性質。不計入程
紅孩兒編輯器的詳細設計
紅孩兒編輯器的詳細設計 1。輸入子系統 第一個設計問題是編輯器是採用多模式切換的方式,還是單模式的方式。本次開發採用了單模式的方式 多模式是指像linux作業系統下的vim編輯器那樣分成編輯模式,命令模式,單行模式等。 單模式只有一種編輯模式。符合絕大多數的使用者的使用習慣,開發會複雜一些。 多
紅孩兒編輯器的模組設計9
紅孩兒編輯器的模組設計9 主編輯區域的三大物件的設計 第一個是編輯器物件它有屬性長度,寬度,游標的位置,行高度,字寬度,還有狀態這個子物件。 行號所佔用的字元數 它的方法有判斷左邊界,判斷右邊界,定位滑鼠的行首,行尾,上下左右移動,上下翻頁,回車, 退格,初始化,得到游標的位置資訊,包括可見
紅孩兒編輯器的模組設計8
紅孩兒編輯器的模組設計8 檔案的儲存與序列化與反序列化操作 儲存的策略 有手工的儲存與自動化的儲存。 手工的儲存就是使用者自動點選儲存按鈕或者使用鍵盤上的快捷鍵操作。 自動化的儲存就是系統每隔一定的時間檢查一下,是否有修改,如果有,則儲存到檔案中。 手工的儲存與自動化的儲存,兩者沒有衝突
紅孩兒編輯器的模組設計6
紅孩兒編輯器的模組設計6 編輯器的主顯示區域的檔案顯示的整體邏輯 配置資訊中的是否顯示行號,是否自動換行,對檔案在編輯器上的顯示有直接的影響。 所以分成了如下的四種情況進行描述: 1 顯示行號,自動換行 每行顯示的字元總數n=編輯器的寬度
紅孩兒編輯器的模組設計5
紅孩兒編輯器的模組設計5 5.1 矩陣轉換模組的設計 16*16點陣 轉換成 32*32點陣的邏輯 這就是說把一個點放大成四個點,如果這四點都顯示的話,字型形狀是相似的。 現在需要讓它從粗體變成瘦體一點的。 這四個點的位置如下 1 2 3 4 如果這個點的
紅孩兒編輯器的模組設計4
紅孩兒編輯器的模組設計4 編輯器主顯示區的樣式渲染的邏輯 例如在顯示區有背景色或者是背景圖片,字,以及對字的種種修飾, 包括加外框,下劃線,中劃線等 這需要有圖層的概念,在顯示區繪製第一個圖層,是背景色或者是背景圖片 第二個圖層是字,第三個圖層是字的修飾內容,例如外框,下劃線,中
紅孩兒編輯器的模組設計3
紅孩兒編輯器的模組設計3 編輯器的主顯示區域的顯示行號的邏輯 首先需要明確的是行號的概念,有檔案中的行號和螢幕上相對於螢幕左上角頂點的螢幕的行號。 需要需要的是檔案中的行號,這是使用者更關心的行號。這也意味著在上下翻頁,或者滾動一行時, 行號與顯示內容要一起重新整理。 邏輯上分成
紅孩兒編輯器的模組設計2
紅孩兒編輯器的模組設計2 核心控制子系統的控制模組 第一層的控制分成三種情況: 以事件型別分為滑鼠,鍵盤按下事件,鍵盤彈起事件 第二層控制分成語言設定 分成中文和英文 第三層控制為輸入字元的分類 分成直接列印的字元,英語小寫字母,數字與空格 五筆輸入法的控
紅孩兒編輯器的模組設計(1)主顯示區域的滾動條的邏輯處理
紅孩兒編輯器的模組設計(1)主顯示區域的滾動條的邏輯處理 第一個問題是判斷滾動條是否需要顯示的問題, 第二個問題是如何渲染滾動條的問題 第三個問題是通知渲染滾動條,或者是取消滾動條的顯示的時機問題 第四個問題是滾動條如何響應滑鼠的操作的問題 第一個問題 邏輯規則如下 如果當檔案的行數超過了一
紅孩兒編輯器的概要設計第二部分
紅孩兒編輯器的概要設計第二部分 技術決策 1程式語言的選擇 html,javascript 2 在1的基礎上影象庫的選擇 使用HTML5的畫布(canvas)api 3 持久化技術選擇 使用WEB瀏覽器的客戶端儲存,以後考慮使用資料
紅孩兒編輯器的概要設計
紅孩兒編輯器的系統設計 設計原則: 1。儘快出一個原型的介面,再快速地進行迭代改進。 2。以易用性為第一目標 功能介面設計 1狀態列區域 2 功能按鈕區域 3 編輯器顯示主區域 4 輸入區域 5 系統配置區域 例如編輯器的主要區域如下所示 紅孩兒編輯器的架構設計 設計原則 1
紅孩兒編輯器的開發 1 字型庫的生成過程
紅孩兒編輯器的開發 1 字型庫的生成過程 採用了點陣圖的方式,以後的優化過程中,會改為向量圖的方式來實現。 現在採用的是16*16的點陣資料,先在EXCEL軟體中,手工地把字的 形狀畫出來。有點的位置為1,無點的位置為0,一行計算成一個數據, 它的值小於等於65535。所以一個字的點
紅孩兒編輯器的開發規範
紅孩兒編輯器的開發規範 第一:先寫相關的設計與開發的文件,然後再開發程式程式碼。 如果不能把設計思路與系統實現的邏輯結構,以文件的形式描述清楚, 那麼就是設計者根本不知道自己要做什麼。開發者也沒有了目標與方向。 在系統的規模很小的情況下,例如,總程式碼行數在2000行以下時, 程式可以不講究
Android課程設計第四天ListView運用
cnblogs super ces getc clas odin long sad tools 註意:課程設計只為完成任務,不做細節描述~ 效果圖 1 <?xml version="1.0" encoding="utf-8"?> 2 <Relat
atitit.html編輯器的設計要點與框架選型 attilax總結
編輯功能 att 瀏覽器 lan 粘貼 edit 編輯 -m 上傳 atitit.html編輯器的設計要點與框架選型 attilax總結 1. html編輯器的設計要求1 1.1. 障礙訪問 1 1.2. 強大Ajax上傳 1 1.3. Word完美
VIM編輯器詳細講解
redhatvim編輯器詳解vim為文件編輯器:字處理器vi:Visual Interfacevim:VI Improved vi的增強版vim模式有三種:編輯模式(命令模式)輸入模式末行模式模式轉換:編輯模式-->輸入模式: i:在當前光標所在字符的前面,轉為輸入模式 a:在當前光標所在字符