?? fg_x11adaptor.h
字號:
/*--------------------------------------------------------------------------
FG_X11Adaptor.h - X11的適配器類的頭文件
本程序是FishGUI軟件的一部分
版權所有 (C) 2003,2004 王詠武
http://www.contextfree.net/wangyw/
----------------------------------------------------------------------------
作者對 FishGUI 軟件及其所有源代碼授權如下:
允許任何個人、組織、機構、企業無償獲得、修改、使用、重新發布 FishGUI 軟
件及其源代碼,或按照有償或者無償的方式發行基于 FishGUI 源代碼的全部或部
分內容開發的軟件產品,——但行使以上權利時,須遵守以下約定:
1、重新發布 FishGUI 軟件及其源代碼時,不得隱去軟件及其源代碼中原有的版
權信息和開發者標識。
2、發行基于 FishGUI 源代碼的全部或部分內容開發的軟件產品時,必須在產品
的顯著位置標明以下字樣:
【本產品的一部分功能是基于王詠武在 FishGUI 軟件中的工作完成的】
3、在正式出版物中引用 FishGUI 的文檔、源代碼或注釋內容的,應注明軟件的
原作者為王詠武。
--------------------------------------------------------------------------*/
/*! \addtogroup OSAdaptor
* @{
*/
/*! \file
* \brief X11的適配器類的頭文件
*/
#ifndef FG_X11ADAPTOR_H_HEADER_INCLUDED_C0B1A8C3
#define FG_X11ADAPTOR_H_HEADER_INCLUDED_C0B1A8C3
#include <sys/param.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "FG_OSAdaptor.h"
class FG_X11DrawInterface;
//##ModelId=3F6EAFFE00A0
/*! \brief X11的適配器類
*
* 該類封裝X11操作系統的程序啟動和運行過程
*/
class FG_X11Adaptor : public FG_OSAdaptor
{
public:
//##ModelId=3F6EB00003E2
/*! \brief 程序初始化
*
* 調用X11函數打開X11顯示設備,創建窗口\n
* 發送\ref FG_MSG_STARTUP消息
* \return 初始化是否成功\n
* true 成功\n
* false 失敗
*/
bool InitInstance();
//##ModelId=3F6EB00003E3
/*! \brief 程序退出
*
* 關閉X11顯示設備,釋放對象
* \return 退出是否成功\n
* true 成功\n
* false 失敗
*/
bool ExitInstance();
//##ModelId=3F6EB00003E4
/*! \brief 程序運行過程,執行消息循環
*
* 執行X11的消息循環
* \return 退出是否成功\n
* true 成功\n
* false 失敗
*/
bool Execute();
//##ModelId=40925CB001FE
/*! \brief 設置位圖文件所在目錄的絕對路徑
*
* 兩種方法得到FishGUI主目錄的絕對路徑
* - 從環境變量HOME_FISHGUI中得到
* - 從程序運行時argv[0]所帶的運行程序路徑和當前路徑組合得到\n
*
* 第二種方法在不同的環境中不能保證一定能得到位圖文件所在目錄的絕對路徑,
* 這種情況下用戶必須設置環境變量HOME_FISHGUI
*
* \param pPath argv[0]所帶的運行程序路徑
*/
void SetXpmPath(const char * pPath);
//##ModelId=40925CB00226
/*! \brief 繪制位圖
*
* X11適配器類覆蓋該函數,把位圖名組合成位圖文件的絕對路徑名,然后代理調用\ref FG_OSDrawInterface::DrawBitmap
* \param pBmpName 要繪制的位圖名
* \param x1 位圖左上角的橫坐標
* \param y1 位圖左上角的縱坐標
*/
virtual void DrawBitmap(const char * pBmpName, const short x1, const short y1);
protected:
friend class FG_OSAdaptor;
//##ModelId=3F6EB0010004
/*! \brief X11適配器類的缺省構造函數 */
FG_X11Adaptor() {}
private:
//##ModelId=3F6EB0010005
/*! \brief X11事件處理函數
*
* 該函數接收系統消息,然后通過觀查者模式發送給框架層
* \param report 接收到的事件
*/
void process_event(XEvent report);
//##ModelId=3F6EB00003C5
Display * display; /*!< \brief X11顯示設備 */
//##ModelId=3F6EB00003CE
int screen; /*!< \brief X11缺省屏幕號 */
//##ModelId=3F6EB00003D8
Window win; /*!< \brief X11窗口結構 */
//##ModelId=40925CB001CC
char XpmPath[MAXPATHLEN + 1]; /*!< \brief 位圖文件所在目錄的絕對路徑 */
};
#endif /* FG_X11ADAPTOR_H_HEADER_INCLUDED_C0B1A8C3 */
/*! @} */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -