git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4665 3789f03b-4d11-0410-bbf8-ca57d06f2519tags/v1.1.90
include_directories(${CMAKE_SOURCE_DIR}/common) | include_directories(${CMAKE_SOURCE_DIR}/common) | ||||
set(VNCVIEWER_SOURCES | set(VNCVIEWER_SOURCES | ||||
buildTime.cxx | buildTime.cxx | ||||
menukey.cxx | |||||
CConn.cxx | CConn.cxx | ||||
DesktopWindow.cxx | DesktopWindow.cxx | ||||
UserDialog.cxx | UserDialog.cxx |
#include "OptionsDialog.h" | #include "OptionsDialog.h" | ||||
#include "fltk_layout.h" | #include "fltk_layout.h" | ||||
#include "i18n.h" | #include "i18n.h" | ||||
#include "menukey.h" | |||||
#include "parameters.h" | #include "parameters.h" | ||||
#include <FL/Fl_Tabs.H> | #include <FL/Fl_Tabs.H> | ||||
menuKeyChoice->value(0); | menuKeyChoice->value(0); | ||||
menuKeyBuf = menuKey; | 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. */ | /* Misc. */ | ||||
sharedCheckbox->value(shared); | sharedCheckbox->value(shared); | ||||
if (menuKeyChoice->value() == 0) | if (menuKeyChoice->value() == 0) | ||||
menuKey.setParam(""); | menuKey.setParam(""); | ||||
else { | else { | ||||
char buf[16]; | |||||
sprintf(buf, "F%d", menuKeyChoice->value()); | |||||
menuKey.setParam(buf); | |||||
menuKey.setParam(menuKeyChoice->text()); | |||||
} | } | ||||
/* Misc. */ | /* Misc. */ | ||||
menuKeyChoice = new Fl_Choice(LBLLEFT(tx, ty, 150, CHOICE_HEIGHT, _("Menu key"))); | menuKeyChoice = new Fl_Choice(LBLLEFT(tx, ty, 150, CHOICE_HEIGHT, _("Menu key"))); | ||||
menuKeyChoice->add(_("None"), 0, NULL, (void*)0, FL_MENU_DIVIDER); | 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; | ty += CHOICE_HEIGHT + TIGHT_MARGIN; | ||||
#include "fltk_layout.h" | #include "fltk_layout.h" | ||||
#include "parameters.h" | #include "parameters.h" | ||||
#include "keysym2ucs.h" | #include "keysym2ucs.h" | ||||
#include "menukey.h" | |||||
#include "vncviewer.h" | #include "vncviewer.h" | ||||
#include <FL/fl_draw.H> | #include <FL/fl_draw.H> | ||||
void Viewport::setMenuKey() | 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 | // Need to repopulate the context menu as it contains references to | ||||
// the menu key | // the menu key |
/* 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; | |||||
} |
/* 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 |