亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cursesf.h

?? ncurses-5.4 需要的就來下把 一定會有用的哦
?? H
?? 第 1 頁 / 共 2 頁
字號:
// * This makes emacs happy -*-Mode: C++;-*-/**************************************************************************** * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              * *                                                                          * * Permission is hereby granted, free of charge, to any person obtaining a  * * copy of this software and associated documentation files (the            * * "Software"), to deal in the Software without restriction, including      * * without limitation the rights to use, copy, modify, merge, publish,      * * distribute, distribute with modifications, sublicense, and/or sell       * * copies of the Software, and to permit persons to whom the Software is    * * furnished to do so, subject to the following conditions:                 * *                                                                          * * The above copyright notice and this permission notice shall be included  * * in all copies or substantial portions of the Software.                   * *                                                                          * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  * * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               * * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   * * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   * * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    * * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    * * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               * *                                                                          * * Except as contained in this notice, the name(s) of the above copyright   * * holders shall not be used in advertising or otherwise to promote the     * * sale, use or other dealings in this Software without prior written       * * authorization.                                                           * ****************************************************************************//**************************************************************************** *   Author: Juergen Pfeifer, 1997                                          * ****************************************************************************/// $Id: cursesf.h,v 1.19 2004/01/15 00:43:46 tom Exp $#ifndef NCURSES_CURSESF_H_incl#define NCURSES_CURSESF_H_incl 1#include <cursesp.h>#include <string.h>extern "C" {#  include <form.h>}//// -------------------------------------------------------------------------// The abstract base class for buitin and user defined Fieldtypes.// -------------------------------------------------------------------------//class NCURSES_IMPEXP NCursesFormField; // forward declaration// Class to represent builtin field types as well as C++ written new// fieldtypes (see classes UserDefineFieldType...class NCURSES_IMPEXP NCursesFieldType {  friend class NCursesFormField;protected:  FIELDTYPE* fieldtype;  inline void OnError(int err) const THROWS(NCursesFormException) {    if (err!=E_OK)      THROW(new NCursesFormException (err));  }  NCursesFieldType(FIELDTYPE *f) : fieldtype(f) {  }  virtual ~NCursesFieldType() {}  // Set the fields f fieldtype to this one.  virtual void set(NCursesFormField& f) = 0;public:  NCursesFieldType() : fieldtype((FIELDTYPE*)0) {  }};//// -------------------------------------------------------------------------// The class representing a forms field, wrapping the lowlevel FIELD struct// -------------------------------------------------------------------------//class NCURSES_IMPEXP NCursesFormField {  friend class NCursesForm;protected:  FIELD *field;              // lowlevel structure  NCursesFieldType* ftype;   // Associated field type  // Error handler  inline void OnError (int err) const THROWS(NCursesFormException) {    if (err != E_OK)      THROW(new NCursesFormException (err));  }public:  // Create a 'Null' field. Can be used to delimit a field list  NCursesFormField()    : field((FIELD*)0), ftype((NCursesFieldType*)0) {  }  // Create a new field  NCursesFormField (int rows,		    int cols,		    int first_row = 0,		    int first_col = 0,		    int offscreen_rows = 0,		    int additional_buffers = 0)    : ftype((NCursesFieldType*)0) {      field = ::new_field(rows,cols,first_row,first_col,			  offscreen_rows, additional_buffers);      if (!field)	OnError(errno);  }  virtual ~NCursesFormField ();  // Duplicate the field at a new position  inline NCursesFormField* dup(int first_row, int first_col) {    NCursesFormField* f = new NCursesFormField();    if (!f)      OnError(E_SYSTEM_ERROR);    else {      f->ftype = ftype;      f->field = ::dup_field(field,first_row,first_col);      if (!f->field)	OnError(errno);    }    return f;  }  // Link the field to a new location  inline NCursesFormField* link(int first_row, int first_col) {    NCursesFormField* f = new NCursesFormField();    if (!f)      OnError(E_SYSTEM_ERROR);    else {      f->ftype = ftype;      f->field = ::link_field(field,first_row,first_col);      if (!f->field)	OnError(errno);    }    return f;  }  // Get the lowlevel field representation  inline FIELD* get_field() const {    return field;  }  // Retrieve info about the field  inline void info(int& rows, int& cols,		   int& first_row, int& first_col,		   int& offscreen_rows, int& additional_buffers) const {    OnError(::field_info(field, &rows, &cols,			 &first_row, &first_col,			 &offscreen_rows, &additional_buffers));  }  // Retrieve info about the fields dynamic properties.  inline void dynamic_info(int& dynamic_rows, int& dynamic_cols,			   int& max_growth) const {    OnError(::dynamic_field_info(field, &dynamic_rows, &dynamic_cols,				 &max_growth));  }  // For a dynamic field you may set the maximum growth limit.  // A zero means unlimited growth.  inline void set_maximum_growth(int growth = 0) {    OnError(::set_max_field(field,growth));  }  // Move the field to a new position  inline void move(int row, int col) {    OnError(::move_field(field,row,col));  }  // Mark the field to start a new page  inline void new_page(bool pageFlag = FALSE) {    OnError(::set_new_page(field,pageFlag));  }  // Retrieve whether or not the field starts a new page.  inline bool is_new_page() const {    return ::new_page(field);  }  // Set the justification for the field  inline void set_justification(int just) {    OnError(::set_field_just(field,just));  }  // Retrieve the fields justification  inline int justification() const {    return ::field_just(field);  }  // Set the foreground attribute for the field  inline void set_foreground(chtype fore) {    OnError(::set_field_fore(field,fore));  }  // Retrieve the fields foreground attribute  inline chtype fore() const {    return ::field_fore(field);  }  // Set the background attribute for the field  inline void set_background(chtype back) {    OnError(::set_field_back(field,back));  }  // Retrieve the fields background attribute  inline chtype back() const {    return ::field_back(field);  }  // Set the padding character for the field  inline void set_pad_character(int pad) {    OnError(::set_field_pad(field,pad));  }  // Retrieve the fields padding character  inline int pad() const {    return ::field_pad(field);  }  // Switch on the fields options  inline void options_on (Field_Options options) {    OnError (::field_opts_on (field, options));  }  // Switch off the fields options  inline void options_off (Field_Options options) {    OnError (::field_opts_off (field, options));  }  // Retrieve the fields options  inline Field_Options options () const {    return ::field_opts (field);  }  // Set the fields options  inline void set_options (Field_Options options) {    OnError (::set_field_opts (field, options));  }  // Mark the field as changed  inline void set_changed(bool changeFlag = TRUE) {    OnError(::set_field_status(field,changeFlag));  }  // Test whether or not the field is marked as changed  inline bool changed() const {    return ::field_status(field);  }  // Return the index of the field in the field array of a form  // or -1 if the field is not associated to a form  inline int (index)() const {    return ::field_index(field);  }  // Store a value in a fields buffer. The default buffer is nr. 0  inline void set_value(const char *val, int buffer = 0) {    OnError(::set_field_buffer(field,buffer,val));  }  // Retrieve the value of a fields buffer. The default buffer is nr. 0  inline char* value(int buffer = 0) const {    return ::field_buffer(field,buffer);  }  // Set the validation type of the field.  inline void set_fieldtype(NCursesFieldType& f) {    ftype = &f;    f.set(*this); // A good friend may do that...  }  // Retrieve the validation type of the field.  inline NCursesFieldType* fieldtype() const {    return ftype;  }};//// -------------------------------------------------------------------------// The class representing a form, wrapping the lowlevel FORM struct// -------------------------------------------------------------------------//class NCURSES_IMPEXP NCursesForm : public NCursesPanel {protected:  FORM* form;  // the lowlevel structureprivate:  NCursesWindow* sub;   // the subwindow object  bool b_sub_owner;     // is this our own subwindow?  bool b_framed;        // has the form a border?  bool b_autoDelete;    // Delete fields when deleting form?  NCursesFormField** my_fields; // The array of fields for this form  // This structure is used for the form's user data field to link the  // FORM* to the C++ object and to provide extra space for a user pointer.  typedef struct {    void*              m_user;      // the pointer for the user's data    const NCursesForm* m_back;      // backward pointer to C++ object    const FORM*        m_owner;  } UserHook;  // Get the backward pointer to the C++ object from a FORM  static inline NCursesForm* getHook(const FORM *f) {    UserHook* hook = (UserHook*)::form_userptr(f);    assert(hook != 0 && hook->m_owner==f);    return (NCursesForm*)(hook->m_back);  }  // This are the built-in hook functions in this C++ binding. In C++ we use  // virtual member functions (see below On_..._Init and On_..._Termination)  // to provide this functionality in an object oriented manner.  static void frm_init(FORM *);  static void frm_term(FORM *);  static void fld_init(FORM *);  static void fld_term(FORM *);  // Calculate FIELD* array for the menu  FIELD** mapFields(NCursesFormField* nfields[]);protected:  // internal routines  inline void set_user(void *user) {    UserHook* uptr = (UserHook*)::form_userptr (form);    assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);    uptr->m_user = user;  }  inline void *get_user() {    UserHook* uptr = (UserHook*)::form_userptr (form);    assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);    return uptr->m_user;  }  void InitForm (NCursesFormField* Fields[],		 bool with_frame,		 bool autoDeleteFields);  inline void OnError (int err) const THROWS(NCursesFormException) {    if (err != E_OK)      THROW(new NCursesFormException (err));  }  // this wraps the form_driver call.  virtual int driver (int c) ;  // 'Internal' constructor, builds an object without association to a  // field array.  NCursesForm( int  lines,	       int  cols,	       int  begin_y = 0,	       int  begin_x = 0)    : NCursesPanel(lines,cols,begin_y,begin_x),      form ((FORM*)0) {  }public:  // Create form for the default panel.  NCursesForm (NCursesFormField* Fields[],	       bool with_frame=FALSE,         // reserve space for a frame?	       bool autoDelete_Fields=FALSE)  // do automatic cleanup?    : NCursesPanel() {    InitForm(Fields, with_frame, autoDelete_Fields);  }  // Create a form in a panel with the given position and size.  NCursesForm (NCursesFormField* Fields[],	       int  lines,	       int  cols,	       int  begin_y,	       int  begin_x,	       bool with_frame=FALSE,        // reserve space for a frame?	       bool autoDelete_Fields=FALSE) // do automatic cleanup?    : NCursesPanel(lines, cols, begin_y, begin_x) {      InitForm(Fields, with_frame, autoDelete_Fields);  }  virtual ~NCursesForm();  // Set the default attributes for the form  virtual void setDefaultAttributes();  // Retrieve current field of the form.  inline NCursesFormField* current_field() const {    return my_fields[::field_index(::current_field(form))];  }  // Set the forms subwindow  void setSubWindow(NCursesWindow& sub);  // Set these fields for the form  inline void setFields(NCursesFormField* Fields[]) {    OnError(::set_form_fields(form,mapFields(Fields)));  }  // Remove the form from the screen  inline void unpost (void) {    OnError (::unpost_form (form));  }  // Post the form to the screen if flag is true, unpost it otherwise  inline void post(bool flag = TRUE) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久久久久久多人混战| 久久综合狠狠综合久久激情| 色88888久久久久久影院按摩| 国内精品国产成人| 日韩福利视频网| 午夜久久电影网| 日韩激情视频在线观看| 免费高清成人在线| 国内精品国产三级国产a久久| 狠狠色狠狠色综合| 国产精华液一区二区三区| 国产成人在线电影| 成人自拍视频在线| 色妹子一区二区| 欧美日韩国产天堂| 欧美一级理论片| 久久一二三国产| 国产精品妹子av| 亚洲欧美区自拍先锋| 亚洲一区在线播放| 日本亚洲欧美天堂免费| 精品一区二区在线视频| 国产成人免费av在线| 91丨九色丨蝌蚪富婆spa| 91老师国产黑色丝袜在线| 成人av网在线| 欧美无砖砖区免费| 欧美精三区欧美精三区| 91精品国产欧美一区二区18| 日韩一区二区在线看片| 日韩美女在线视频 | 欧美日韩国产高清一区二区| 欧美综合一区二区| 欧美日本韩国一区二区三区视频| 欧美日韩大陆在线| 日韩欧美国产综合| 久久精品亚洲乱码伦伦中文| 国产精品视频一二| 亚洲精品中文在线影院| 国产精品传媒入口麻豆| 中文字幕va一区二区三区| 精品国产精品网麻豆系列| 久久―日本道色综合久久| 日韩视频免费观看高清完整版 | 精品三级在线观看| 久久久美女毛片 | 国产一区二区三区国产| 成人一区二区三区视频| 在线视频欧美区| 精品国产一区二区三区久久影院| 久久久亚洲综合| 亚洲色图在线看| 热久久一区二区| 成人av综合一区| 色综合久久综合中文综合网| 日韩欧美成人午夜| 久久精品在线免费观看| 一区二区三区在线免费播放| 强制捆绑调教一区二区| 成人午夜伦理影院| 在线成人午夜影院| 国产日产欧美一区| 午夜婷婷国产麻豆精品| 国产精品亚洲成人| 在线观看网站黄不卡| 精品国产凹凸成av人网站| 亚洲三级在线观看| 久久福利资源站| 色偷偷成人一区二区三区91 | 成人app在线| 欧美一级搡bbbb搡bbbb| 国产精品国产三级国产aⅴ中文 | 91麻豆swag| 精品国产污网站| 一个色在线综合| 国产一区二区三区精品视频| 欧美午夜不卡视频| 欧美国产丝袜视频| 蜜臀久久久久久久| 色哟哟国产精品| 国产亚洲欧美日韩俺去了| 一区二区三区视频在线看| 精久久久久久久久久久| 91高清视频免费看| 欧美一级生活片| 一区二区三区.www| 国产·精品毛片| 日韩精品在线网站| 亚洲.国产.中文慕字在线| 99精品欧美一区二区蜜桃免费| 欧美电影免费观看高清完整版在线 | 精品国产免费人成在线观看| 夜夜嗨av一区二区三区中文字幕 | 色呦呦网站一区| 国产精品欧美久久久久无广告 | 成人三级在线视频| 精品999在线播放| 首页国产欧美久久| 色综合天天天天做夜夜夜夜做| 日韩一区和二区| 亚洲人成网站色在线观看| 国产精品一二三四五| 精品毛片乱码1区2区3区| 亚洲丶国产丶欧美一区二区三区| 成人网在线播放| 国产午夜精品一区二区三区视频| 久久不见久久见中文字幕免费| 色欧美日韩亚洲| 欧美国产一区二区| 韩国精品主播一区二区在线观看| 欧美在线播放高清精品| 日本一二三四高清不卡| 日韩电影免费在线看| 在线综合亚洲欧美在线视频| 天堂va蜜桃一区二区三区 | 国产精品美女久久久久aⅴ国产馆| 国产精品一品视频| 久久精品一二三| 国内精品伊人久久久久影院对白| 欧美成人r级一区二区三区| 日韩精品电影在线观看| 正在播放一区二区| 日本视频免费一区| 欧美一区二区三区爱爱| 日本不卡视频在线观看| 宅男在线国产精品| 久草在线在线精品观看| 精品少妇一区二区三区在线视频| 青青草原综合久久大伊人精品 | 欧美日韩亚洲另类| 亚洲午夜影视影院在线观看| 欧美日韩国产影片| 日韩中文字幕一区二区三区| 欧美精品丝袜久久久中文字幕| 三级亚洲高清视频| 精品国产制服丝袜高跟| 国产91清纯白嫩初高中在线观看 | 亚洲一区视频在线| 日韩一二三四区| 激情综合色播五月| 亚洲国产精品成人综合色在线婷婷| 成人性生交大片免费 | 国产91精品露脸国语对白| 中文字幕一区二区三区四区 | 欧美制服丝袜第一页| 亚洲aaa精品| 欧美精品一区二区三区在线| 国产精品资源站在线| 国产精品久久久久精k8| 在线观看亚洲一区| 男女男精品视频网| 国产精品嫩草影院av蜜臀| 一本到高清视频免费精品| 视频一区视频二区中文字幕| 久久―日本道色综合久久| 97se亚洲国产综合自在线观| 午夜视频在线观看一区二区三区| 精品国产免费视频| 99久久久国产精品免费蜜臀| 亚洲第一搞黄网站| 国产亚洲一区二区三区四区| 色狠狠av一区二区三区| 另类小说综合欧美亚洲| 亚洲人成精品久久久久久| 欧美一区二区性放荡片| 成人深夜视频在线观看| 日本不卡1234视频| 亚洲图片另类小说| 日韩一区二区免费电影| 懂色av一区二区夜夜嗨| 婷婷综合另类小说色区| 中文字幕第一区第二区| 欧美女孩性生活视频| 丁香另类激情小说| 偷拍一区二区三区四区| 国产精品久久久久久户外露出| 欧美一级艳片视频免费观看| 色综合夜色一区| 国产成a人亚洲| 蜜臀a∨国产成人精品| 亚洲自拍都市欧美小说| 国产精品免费网站在线观看| 欧美精品99久久久**| 成人97人人超碰人人99| 捆绑调教一区二区三区| 一区二区国产盗摄色噜噜| 国产婷婷精品av在线| 91麻豆精品国产自产在线观看一区| 99re成人在线| 国产91在线看| 国内精品国产成人国产三级粉色| 天堂成人免费av电影一区| 日本一区二区成人| 69av一区二区三区| 99国产精品久久久久久久久久| 韩国一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品欧美一二99| 亚洲三级小视频| 17c精品麻豆一区二区免费|