diff options
Diffstat (limited to 'unix/vncviewer/ServerDialog.h')
-rw-r--r-- | unix/vncviewer/ServerDialog.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/unix/vncviewer/ServerDialog.h b/unix/vncviewer/ServerDialog.h new file mode 100644 index 00000000..f6980dc7 --- /dev/null +++ b/unix/vncviewer/ServerDialog.h @@ -0,0 +1,91 @@ +/* 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. + */ +// +// ServerDialog.h +// + +#ifndef __SERVERDIALOG_H__ +#define __SERVERDIALOG_H__ + +#include "TXDialog.h" +#include "TXLabel.h" +#include "TXEntry.h" +#include "TXButton.h" +#include "OptionsDialog.h" +#include "AboutDialog.h" + +class ServerDialog : public TXDialog, public TXEntryCallback, + public TXButtonCallback { +public: + ServerDialog(Display* dpy, OptionsDialog* options_, AboutDialog* about_) + : TXDialog(dpy, 355, 120, _("VNC Viewer: Connection Details"), true), + label(dpy, _("VNC server:"), this, 100), + entry(dpy, this, this, false, 180), + aboutButton(dpy, _("About..."), this, this, 70), + optionsButton(dpy, _("Options..."), this, this, 70), + okButton(dpy, _("OK"), this, this, 70), + cancelButton(dpy, _("Cancel"), this, this, 70), + options(options_), about(about_) + { + label.move(0, 30); + entry.move(label.width(), 28); + int x = width(); + int y = height() - yPad*4 - cancelButton.height(); + x -= cancelButton.width() + xPad*4; + cancelButton.move(x, y); + x -= okButton.width() + xPad*4; + okButton.move(x, y); + x -= optionsButton.width() + xPad*4; + optionsButton.move(x, y); + x -= aboutButton.width() + xPad*4; + aboutButton.move(x, y); + } + + virtual void takeFocus(Time time) { + XSetInputFocus(dpy, entry.win(), RevertToParent, time); + } + + virtual void entryCallback(TXEntry* e, Detail detail, Time time) { + if (detail == ENTER) { + ok = true; + done = true; + } + } + + virtual void buttonActivate(TXButton* b) { + if (b == &okButton) { + ok = true; + done = true; + } else if (b == &cancelButton) { + ok = false; + done = true; + } else if (b == &optionsButton) { + options->show(); + } else if (b == &aboutButton) { + about->show(); + } + } + + TXLabel label; + TXEntry entry; + TXButton aboutButton, optionsButton, okButton, cancelButton; + OptionsDialog* options; + AboutDialog* about; +}; + +#endif |