GTK+實(shí)現(xiàn)電話程序界面(2)
緊接“GTK+實(shí)現(xiàn)電話程序界面(1)”,上文實(shí)現(xiàn)了電話程序首頁的界面,接下來我們需要進(jìn)行的是在(1)的基礎(chǔ)上進(jìn)行撥號以及通話這兩個(gè)界面的實(shí)現(xiàn)。代碼如下:
增加string.h以便于對字符串進(jìn)行處理:
撥號鍵盤的按鍵事件處理函數(shù),主要功能是將不同的按鍵代表的值放入緩沖區(qū)buffer中,除了“刪除”按鍵需要從緩沖區(qū)中去掉最后一個(gè)值。
通話界面設(shè)置函數(shù)
這里將之前的“撥號”按鍵回調(diào)函數(shù)進(jìn)行了拆分,以便實(shí)現(xiàn)代碼的復(fù)用,撥號界面的設(shè)置代碼放入了didal_view中,以便在“返回”事件發(fā)生時(shí),能夠被回調(diào)函數(shù)調(diào)用。
主函數(shù)也進(jìn)行了拆分,目的也是為了實(shí)現(xiàn)代碼復(fù)用,主界面代碼放入了main_view中,以便在“返回”事件發(fā)生時(shí),能夠被回調(diào)函數(shù)調(diào)用。
總結(jié):目前為止,我們已經(jīng)走通了撥號程序這條線的界面設(shè)計(jì),優(yōu)化的工作可以放到后期,余下的界面設(shè)計(jì)還有通話記錄和通訊錄的需要繼續(xù)做。
收獲:
1、學(xué)會了GTK+界面切換的思路邏輯,就是不同窗口界面的交替顯示,但是如果該應(yīng)用軟件有圖標(biāo)在狀態(tài)欄的時(shí)候,新窗口界面的出現(xiàn)會導(dǎo)致狀態(tài)欄的應(yīng)用程序圖標(biāo)顯示有多個(gè)窗口存在,但是我們的應(yīng)用程序只開啟了一次,按理說圖標(biāo)不應(yīng)該顯示有多個(gè)窗口,因此我們需要將被遮擋的窗口進(jìn)行隱藏。
2、將大功能拆分為小功能,大功能可能不好實(shí)現(xiàn),拆分為小功能后能降低實(shí)現(xiàn)復(fù)雜度。同時(shí)還可能實(shí)現(xiàn)代碼的復(fù)用性。