Browse Source

Add connection information dialog based on the one in the unix viewer.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4417 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.1.90
Pierre Ossman 13 years ago
parent
commit
2eb1d11004
3 changed files with 42 additions and 1 deletions
  1. 33
    0
      vncviewer/CConn.cxx
  2. 2
    0
      vncviewer/CConn.h
  3. 7
    1
      vncviewer/Viewport.cxx

+ 33
- 0
vncviewer/CConn.cxx View File

@@ -107,6 +107,39 @@ void CConn::refreshFramebuffer()
forceNonincremental = true;
}

const char *CConn::connectionInfo()
{
static char infoText[1024] = "";

char pfStr[100];
char spfStr[100];

cp.pf().print(pfStr, 100);
serverPF.print(spfStr, 100);

int secType = csecurity->getType();

snprintf(infoText, sizeof(infoText),
_("Desktop name: %.80s\n"
"Host: %.80s port: %d\n"
"Size: %d x %d\n"
"Pixel format: %s\n"
"(server default %s)\n"
"Requested encoding: %s\n"
"Last used encoding: %s\n"
"Line speed estimate: %d kbit/s\n"
"Protocol version: %d.%d\n"
"Security method: %s\n"),
cp.name(), serverHost, serverPort, cp.width, cp.height,
pfStr, spfStr, encodingName(currentEncoding),
encodingName(lastServerEncoding),
sock->inStream().kbitsPerSecond(),
cp.majorVersion, cp.minorVersion,
secTypeName(secType));

return infoText;
}

// The RFB core is not properly asynchronous, so it calls this callback
// whenever it needs to block to wait for more data. Since FLTK is
// monitoring the socket, we just make sure FLTK gets to run.

+ 2
- 0
vncviewer/CConn.h View File

@@ -34,6 +34,8 @@ public:

void refreshFramebuffer();

const char *connectionInfo();

// FdInStreamBlockCallback methods
void blockCallback();


+ 7
- 1
vncviewer/Viewport.cxx View File

@@ -22,6 +22,7 @@
#include <string.h>

#include <FL/fl_draw.H>
#include <FL/fl_ask.H>

#include <rfb/CMsgWriter.h>
#include <rfb/LogWriter.h>
@@ -54,7 +55,7 @@ static rfb::LogWriter vlog("Viewport");
// Menu constants

enum { ID_EXIT, ID_CTRL, ID_ALT, ID_MENUKEY, ID_CTRLALTDEL,
ID_REFRESH, ID_OPTIONS, ID_ABOUT, ID_DISMISS };
ID_REFRESH, ID_OPTIONS, ID_INFO, ID_ABOUT, ID_DISMISS };

Viewport::Viewport(int w, int h, const rfb::PixelFormat& serverPF, CConn* cc_)
: Fl_Widget(0, 0, w, h), cc(cc_), frameBuffer(NULL), pixelTrans(NULL),
@@ -452,6 +453,7 @@ void Viewport::initContextMenu()
contextMenu->add(_("Refresh screen"), 0, NULL, (void*)ID_REFRESH, FL_MENU_DIVIDER);

contextMenu->add(_("Options..."), 0, NULL, (void*)ID_OPTIONS, 0);
contextMenu->add(_("Connection info..."), 0, NULL, (void*)ID_INFO, 0);
contextMenu->add(_("About TigerVNC viewer..."), 0, NULL, (void*)ID_ABOUT, FL_MENU_DIVIDER);

contextMenu->add(_("Dismiss menu"), 0, NULL, (void*)ID_DISMISS, 0);
@@ -503,6 +505,10 @@ void Viewport::popupContextMenu()
case ID_OPTIONS:
OptionsDialog::showDialog();
break;
case ID_INFO:
fl_message_title(_("VNC connection info"));
fl_message(cc->connectionInfo());
break;
case ID_ABOUT:
about_vncviewer();
break;

Loading…
Cancel
Save