📄 txmsgbox.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. *///// TXMsgBox.h//// A TXMsgBox is a specialised pop-up dialog window, designed to present// the user with a small amount of textual information, and potentially to// obtain their response.// TXMsgBoxes are always modal, and may have an Ok button, Ok+Cancel buttons,// or Yes+No buttons.// The MsgBox helper function creates a TXMsgBox on the fly, runs it, and// returns the result.//#ifndef __TXMSGBOX_H__#define __TXMSGBOX_H__#include "TXDialog.h"#include "TXLabel.h"#include "TXButton.h"enum TXMsgBoxFlags { MB_OK = 0, MB_OKCANCEL = 1, MB_YESNO = 4, MB_ICONERROR = 0x10, MB_ICONQUESTION = 0x20, MB_ICONWARNING = 0x30, MB_ICONINFORMATION = 0x40, MB_DEFBUTTON1 = 0, MB_DEFBUTTON2 = 0x100};class TXMsgBox : public TXDialog, public TXButtonCallback {public: TXMsgBox(Display* dpy, const char* text, unsigned int flags, const char* title=0) : TXDialog(dpy, 1, 1, "Message", true), textLabel(dpy, "", this), okButton(dpy, "OK", this, this, 60), cancelButton(dpy, "Cancel", this, this, 60) { textLabel.xPad = 8; textLabel.move(0, yPad*4); textLabel.setText(text); resize(textLabel.width(), textLabel.height() + okButton.height() + yPad*12); switch (flags & 0x30) { case MB_ICONERROR: toplevel("Error", this); break; case MB_ICONQUESTION: toplevel("Question", this); break; case MB_ICONWARNING: toplevel("Warning", this); break; case MB_ICONINFORMATION: toplevel("Information", this); break; default: if (title) toplevel(title, this); break; }; switch (flags & 0x7) { default: okButton.move((width() - okButton.width()) / 2, height() - yPad*4 - okButton.height()); cancelButton.unmap(); break; case MB_OKCANCEL: case MB_YESNO: okButton.move(((width()/2) - okButton.width()) / 2, height() - yPad*4 - okButton.height()); cancelButton.move(((width()*3/2) - cancelButton.width()) / 2, height() - yPad*4 - cancelButton.height()); if ((flags & 0x7) == MB_YESNO) { okButton.setText("Yes"); cancelButton.setText("No"); } break; }; setBorderWidth(1); } virtual void buttonActivate(TXButton* b) { ok = (b == &okButton); done = true; unmap(); } TXLabel textLabel; TXButton okButton; TXButton cancelButton;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -