📄 txdialog.h
字号:
/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. * * This is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this software; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. *///// TXDialog.h//// A TXDialog is a pop-up dialog window. The dialog can be made visible by// calling its show() method. Dialogs can be modal or non-modal. For a modal// dialog box, the show() method only returns when the dialog box has been// dismissed. For a non-modal dialog box, the show() method returns// immediately.//#ifndef __TXDIALOG_H__#define __TXDIALOG_H__#include "TXWindow.h"#include <errno.h>class TXDialog : public TXWindow, public TXDeleteWindowCallback {public: TXDialog(Display* dpy, int width, int height, const char* name, bool modal_=false) : TXWindow(dpy, width, height), done(false), ok(false), modal(modal_) { toplevel(name, this); resize(width, height); } virtual ~TXDialog() {} // show() makes the dialog visible. For a modal dialog box, this processes X // events until the done flag has been set, after which it returns the value // of the ok flag. For a non-modal dialog box it always returns true // immediately. bool show() { ok = false; done = false; initDialog(); raise(); map(); if (modal) { while (true) { TXWindow::handleXEvents(dpy); if (done) { return ok; } fd_set rfds; FD_ZERO(&rfds); FD_SET(ConnectionNumber(dpy), &rfds); int n = select(FD_SETSIZE, &rfds, 0, 0, 0); if (n < 0) throw rdr::SystemException("select",errno); } } return true; } // initDialog() can be overridden in a derived class. Typically it is used // to make sure that checkboxes have the right state, etc. virtual void initDialog() {} // resize() is overidden here to re-center the dialog void resize(int w, int h) { TXWindow::resize(w,h); int dpyWidth = WidthOfScreen(DefaultScreenOfDisplay(dpy)); int dpyHeight = HeightOfScreen(DefaultScreenOfDisplay(dpy)); setUSPosition((dpyWidth - width() - 10) / 2, (dpyHeight - height() - 30) / 2); } protected: virtual void deleteWindow(TXWindow* w) { ok = false; done = true; unmap(); } bool done; bool ok; bool modal;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -