git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4665 3789f03b-4d11-0410-bbf8-ca57d06f2519tags/v1.1.90
@@ -4,6 +4,7 @@ include_directories(${GETTEXT_INCLUDE_DIR}) | |||
include_directories(${CMAKE_SOURCE_DIR}/common) | |||
set(VNCVIEWER_SOURCES | |||
buildTime.cxx | |||
menukey.cxx | |||
CConn.cxx | |||
DesktopWindow.cxx | |||
UserDialog.cxx |
@@ -36,6 +36,7 @@ | |||
#include "OptionsDialog.h" | |||
#include "fltk_layout.h" | |||
#include "i18n.h" | |||
#include "menukey.h" | |||
#include "parameters.h" | |||
#include <FL/Fl_Tabs.H> | |||
@@ -268,11 +269,9 @@ void OptionsDialog::loadOptions(void) | |||
menuKeyChoice->value(0); | |||
menuKeyBuf = menuKey; | |||
if (menuKeyBuf[0] == 'F') { | |||
int num = atoi(menuKeyBuf+1); | |||
if ((num >= 1) && (num <= 12)) | |||
menuKeyChoice->value(num); | |||
} | |||
for (int i = 0; i < getMenuKeySymbolCount(); i++) | |||
if (!strcmp(getMenuKeySymbols()[i].name, menuKeyBuf)) | |||
menuKeyChoice->value(i + 1); | |||
/* Misc. */ | |||
sharedCheckbox->value(shared); | |||
@@ -361,9 +360,7 @@ void OptionsDialog::storeOptions(void) | |||
if (menuKeyChoice->value() == 0) | |||
menuKey.setParam(""); | |||
else { | |||
char buf[16]; | |||
sprintf(buf, "F%d", menuKeyChoice->value()); | |||
menuKey.setParam(buf); | |||
menuKey.setParam(menuKeyChoice->text()); | |||
} | |||
/* Misc. */ | |||
@@ -696,11 +693,8 @@ void OptionsDialog::createInputPage(int tx, int ty, int tw, int th) | |||
menuKeyChoice = new Fl_Choice(LBLLEFT(tx, ty, 150, CHOICE_HEIGHT, _("Menu key"))); | |||
menuKeyChoice->add(_("None"), 0, NULL, (void*)0, FL_MENU_DIVIDER); | |||
for (int i = 1;i <= 12;i++) { | |||
char buf[16]; | |||
sprintf(buf, "F%d", i); | |||
menuKeyChoice->add(buf, 0, NULL, (void*)i, 0); | |||
} | |||
for (int i = 0; i < getMenuKeySymbolCount(); i++) | |||
menuKeyChoice->add(getMenuKeySymbols()[i].name, 0, NULL, 0, 0); | |||
ty += CHOICE_HEIGHT + TIGHT_MARGIN; | |||
@@ -46,6 +46,7 @@ | |||
#include "fltk_layout.h" | |||
#include "parameters.h" | |||
#include "keysym2ucs.h" | |||
#include "menukey.h" | |||
#include "vncviewer.h" | |||
#include <FL/fl_draw.H> | |||
@@ -938,16 +939,7 @@ void Viewport::popupContextMenu() | |||
void Viewport::setMenuKey() | |||
{ | |||
const char *menuKeyStr; | |||
menuKeyCode = 0; | |||
menuKeyStr = menuKey; | |||
if (menuKeyStr[0] == 'F') { | |||
int num = atoi(menuKeyStr + 1); | |||
if ((num >= 1) && (num <= 12)) | |||
menuKeyCode = FL_F + num; | |||
} | |||
menuKeyCode = getMenuKeyCode(); | |||
// Need to repopulate the context menu as it contains references to | |||
// the menu key |
@@ -0,0 +1,71 @@ | |||
/* Copyright 2011 Martin Koegler <mkoegler@auto.tuwien.ac.at> | |||
* Copyright 2011 Pierre Ossman <ossman@cendio.se> for Cendio AB | |||
* | |||
* 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. | |||
*/ | |||
#include <string.h> | |||
#include <FL/Fl.H> | |||
#include "menukey.h" | |||
#include "parameters.h" | |||
static const MenuKeySymbol menuSymbols[] = { | |||
{"F1", FL_F + 1}, | |||
{"F2", FL_F + 2}, | |||
{"F3", FL_F + 3}, | |||
{"F4", FL_F + 4}, | |||
{"F5", FL_F + 5}, | |||
{"F6", FL_F + 6}, | |||
{"F7", FL_F + 7}, | |||
{"F8", FL_F + 8}, | |||
{"F9", FL_F + 9}, | |||
{"F10", FL_F + 10}, | |||
{"F11", FL_F + 11}, | |||
{"F12", FL_F + 12}, | |||
{"Pause", FL_Pause}, | |||
{"Print", FL_Print}, | |||
{"Scroll_Lock", FL_Scroll_Lock}, | |||
{"Escape", FL_Escape}, | |||
{"Insert", FL_Insert}, | |||
{"Delete", FL_Delete}, | |||
{"Home", FL_Home}, | |||
{"Page_Up", FL_Page_Up}, | |||
{"Page_Down", FL_Page_Down}, | |||
}; | |||
int getMenuKeySymbolCount() | |||
{ | |||
return sizeof(menuSymbols)/sizeof(menuSymbols[0]); | |||
} | |||
const MenuKeySymbol* getMenuKeySymbols() | |||
{ | |||
return menuSymbols; | |||
} | |||
int getMenuKeyCode() | |||
{ | |||
const char *menuKeyStr; | |||
int menuKeyCode = 0; | |||
menuKeyStr = menuKey; | |||
for(int i = 0; i < getMenuKeySymbolCount(); i++) | |||
if (!strcmp(menuSymbols[i].name, menuKeyStr)) | |||
menuKeyCode = menuSymbols[i].keycode; | |||
return menuKeyCode; | |||
} |
@@ -0,0 +1,30 @@ | |||
/* Copyright 2011 Martin Koegler <mkoegler@auto.tuwien.ac.at> | |||
* | |||
* 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. | |||
*/ | |||
#ifndef __KEYSYM_H__ | |||
#define __KEYSYM_H__ | |||
typedef struct { | |||
const char* name; | |||
int keycode; | |||
} MenuKeySymbol; | |||
int getMenuKeyCode(); | |||
int getMenuKeySymbolCount(); | |||
const MenuKeySymbol* getMenuKeySymbols(); | |||
#endif |