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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色777网| 色婷婷精品久久二区二区蜜臀av| 中文一区二区在线观看| 欧美三级午夜理伦三级中视频| 精品亚洲免费视频| 亚洲韩国精品一区| 中文一区二区完整视频在线观看| 91精品国产美女浴室洗澡无遮挡| 播五月开心婷婷综合| 久久99热这里只有精品| 亚洲va在线va天堂| 亚洲视频一二三区| 国产女主播一区| 精品国产伦一区二区三区观看方式 | 国产精品国产三级国产有无不卡 | 欧美男女性生活在线直播观看| 成人国产精品免费网站| 久久99精品久久久久婷婷| 亚洲欧美电影院| 国产精品免费视频一区| 久久天堂av综合合色蜜桃网| 欧美日韩一区二区三区高清| 99这里只有久久精品视频| 成熟亚洲日本毛茸茸凸凹| 精品一区二区在线看| 美国一区二区三区在线播放| 亚洲午夜免费电影| 一区二区三区欧美| 亚洲免费av高清| 日韩一区欧美一区| 亚洲国产成人私人影院tom| 26uuu久久综合| 久久综合久久99| 精品国产免费一区二区三区香蕉| 欧美一区二区在线看| 欧美精品亚洲一区二区在线播放| 91国内精品野花午夜精品| 一本大道综合伊人精品热热| 一本色道**综合亚洲精品蜜桃冫| www.日韩精品| 91免费观看在线| 91视频国产资源| 一本色道久久加勒比精品| 欧美在线播放高清精品| 欧美网站大全在线观看| 欧美色区777第一页| 欧美精品一二三区| 欧美一二三四区在线| 欧美成人精品3d动漫h| 欧美精品一区二区三区一线天视频| 欧美videos中文字幕| 欧美精品一区二区三区蜜桃| 国产日产欧产精品推荐色| 成人欧美一区二区三区小说| 亚洲综合在线电影| 日韩综合在线视频| 国产真实乱子伦精品视频| 国产iv一区二区三区| 91碰在线视频| 欧美日韩在线精品一区二区三区激情| 欧美日韩国产高清一区二区| 91精品国产免费| 国产亚洲一区二区三区在线观看| 国产精品乱子久久久久| 亚洲观看高清完整版在线观看| 日韩高清电影一区| 国内不卡的二区三区中文字幕| 成人av网站在线观看免费| 欧美午夜视频网站| 欧美一区二区三区四区在线观看| 久久噜噜亚洲综合| 一区二区高清视频在线观看| 日本欧洲一区二区| 成人高清伦理免费影院在线观看| 色猫猫国产区一区二在线视频| 正在播放亚洲一区| 中文字幕欧美日韩一区| 一区二区欧美在线观看| 日韩成人精品在线| 国产suv精品一区二区三区| 在线观看精品一区| 欧美精品一区二| 一级精品视频在线观看宜春院 | 在线中文字幕不卡| 欧美电视剧免费全集观看| 亚洲欧洲精品天堂一级| 免费成人av在线| bt7086福利一区国产| 久久无码av三级| 亚洲高清免费视频| 懂色中文一区二区在线播放| 欧美美女网站色| 国产精品久久免费看| 看国产成人h片视频| 在线看国产日韩| 国产视频一区二区在线观看| 日韩精品午夜视频| 91蜜桃网址入口| 久久久久久久久久久久久久久99| 亚洲高清免费观看高清完整版在线观看 | 成人污污视频在线观看| 欧美一区二区在线视频| 亚洲综合在线免费观看| 成人高清在线视频| 久久久精品国产免大香伊| 日本不卡一区二区三区| 91福利国产精品| 国产精品成人一区二区艾草| 国模大尺度一区二区三区| 正在播放一区二区| 亚洲 欧美综合在线网络| 色成人在线视频| 国产精品久久久久天堂| 国产传媒一区在线| 精品动漫一区二区三区在线观看| 亚洲国产精品久久不卡毛片| 色综合久久综合网97色综合| 中文字幕精品—区二区四季| 国内成+人亚洲+欧美+综合在线| 日韩一区二区在线观看视频播放| 亚洲综合精品自拍| 在线国产电影不卡| 亚洲卡通动漫在线| 91在线无精精品入口| 国产精品视频一区二区三区不卡| 国产美女精品在线| 26uuu色噜噜精品一区二区| 激情文学综合插| 欧美成人精品高清在线播放| 美女视频免费一区| 日韩免费在线观看| 久久精品国产一区二区三| 欧美videos大乳护士334| 麻豆中文一区二区| 欧美成人三级电影在线| 黄色日韩网站视频| 久久人人爽爽爽人久久久| 国产美女视频一区| 中文字幕精品在线不卡| 国产成人av福利| 国产精品婷婷午夜在线观看| heyzo一本久久综合| 综合久久久久久| 色呦呦网站一区| 亚洲bt欧美bt精品777| 日韩午夜电影av| 九色|91porny| 国产欧美一区二区精品忘忧草| av电影在线观看一区| 一区二区三区日韩| 欧美一级日韩一级| 精品一区二区日韩| 中文字幕免费不卡在线| 色香蕉久久蜜桃| 亚洲大片免费看| 精品国产一区二区三区四区四 | 欧美一级片免费看| 韩国v欧美v亚洲v日本v| 日本一区二区在线不卡| 91浏览器入口在线观看| 天天影视网天天综合色在线播放| 日韩欧美国产麻豆| 国产成人午夜高潮毛片| 亚洲欧美国产三级| 日韩视频在线观看一区二区| 国产精品影视在线观看| 亚洲欧美日韩国产一区二区三区| 欧美精品乱码久久久久久按摩| 久久精品久久综合| 亚洲天堂免费看| 91精品免费在线| 国产a久久麻豆| 亚洲一区二区免费视频| 久久丝袜美腿综合| 欧美午夜不卡视频| 国内成人免费视频| 亚洲综合视频在线| 久久精品一区八戒影视| 欧美亚日韩国产aⅴ精品中极品| 青青草97国产精品免费观看| 国产精品国产三级国产三级人妇| 欧美精品九九99久久| 高清国产一区二区| 日韩1区2区日韩1区2区| 国产精品电影一区二区| 日韩精品一区二区三区在线| 99精品久久只有精品| 久久国产婷婷国产香蕉| 夜夜爽夜夜爽精品视频| 久久久久久久精| 欧美精品日韩一本| 色综合久久九月婷婷色综合| 狠狠色综合日日| 香蕉影视欧美成人| 1000部国产精品成人观看| 欧美精品一区在线观看| 欧美精品一二三| 色婷婷av久久久久久久| 国产91丝袜在线观看| 韩国一区二区三区|