|
|
|
@ -17,11 +17,13 @@
|
|
|
|
|
|
|
|
|
|
#include <Alert.h>
|
|
|
|
|
#include <Button.h>
|
|
|
|
|
#include <Catalog.h>
|
|
|
|
|
#include <Directory.h>
|
|
|
|
|
#include <File.h>
|
|
|
|
|
#include <FindDirectory.h>
|
|
|
|
|
#include <GroupLayoutBuilder.h>
|
|
|
|
|
#include <ListView.h>
|
|
|
|
|
#include <Locale.h>
|
|
|
|
|
#include <MenuBar.h>
|
|
|
|
|
#include <MenuField.h>
|
|
|
|
|
#include <MenuItem.h>
|
|
|
|
@ -37,6 +39,9 @@
|
|
|
|
|
#include "KeymapListItem.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define TR_CONTEXT "Keymap window"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const uint32 kMsgMenuFileOpen = 'mMFO';
|
|
|
|
|
static const uint32 kMsgMenuFileSaveAs = 'mMFA';
|
|
|
|
|
|
|
|
|
@ -65,7 +70,7 @@ static const char* kCurrentKeymapName = "(Current)";
|
|
|
|
|
|
|
|
|
|
KeymapWindow::KeymapWindow()
|
|
|
|
|
:
|
|
|
|
|
BWindow(BRect(80, 50, 880, 380), "Keymap", B_TITLED_WINDOW,
|
|
|
|
|
BWindow(BRect(80, 50, 880, 380), TR("Keymap"), B_TITLED_WINDOW,
|
|
|
|
|
B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS)
|
|
|
|
|
{
|
|
|
|
|
SetLayout(new BGroupLayout(B_VERTICAL));
|
|
|
|
@ -73,12 +78,12 @@ KeymapWindow::KeymapWindow()
|
|
|
|
|
fKeyboardLayoutView = new KeyboardLayoutView("layout");
|
|
|
|
|
fKeyboardLayoutView->SetKeymap(&fCurrentMap);
|
|
|
|
|
|
|
|
|
|
fTextControl = new BTextControl("Sample and Clipboard:", "", NULL);
|
|
|
|
|
fTextControl = new BTextControl(TR("Sample and Clipboard:"), "", NULL);
|
|
|
|
|
|
|
|
|
|
fSwitchShortcutsButton = new BButton("switch", "",
|
|
|
|
|
new BMessage(kMsgSwitchShortcuts));
|
|
|
|
|
|
|
|
|
|
fRevertButton = new BButton("revertButton", "Revert",
|
|
|
|
|
fRevertButton = new BButton("revertButton", TR("Revert"),
|
|
|
|
|
new BMessage(kMsgRevertKeymap));
|
|
|
|
|
|
|
|
|
|
// controls pane
|
|
|
|
@ -373,19 +378,19 @@ KeymapWindow::_CreateMenu()
|
|
|
|
|
BMenuItem* item;
|
|
|
|
|
|
|
|
|
|
// Create the File menu
|
|
|
|
|
BMenu* menu = new BMenu("File");
|
|
|
|
|
menu->AddItem(new BMenuItem("Open" B_UTF8_ELLIPSIS,
|
|
|
|
|
BMenu* menu = new BMenu(TR("File"));
|
|
|
|
|
menu->AddItem(new BMenuItem(TR("Open" B_UTF8_ELLIPSIS),
|
|
|
|
|
new BMessage(kMsgMenuFileOpen), 'O'));
|
|
|
|
|
menu->AddSeparatorItem();
|
|
|
|
|
menu->AddItem(new BMenuItem("Save As" B_UTF8_ELLIPSIS,
|
|
|
|
|
menu->AddItem(new BMenuItem(TR("Save As" B_UTF8_ELLIPSIS),
|
|
|
|
|
new BMessage(kMsgMenuFileSaveAs)));
|
|
|
|
|
menu->AddSeparatorItem();
|
|
|
|
|
menu->AddItem(new BMenuItem("Quit",
|
|
|
|
|
menu->AddItem(new BMenuItem(TR("Quit"),
|
|
|
|
|
new BMessage(B_QUIT_REQUESTED), 'Q'));
|
|
|
|
|
menuBar->AddItem(menu);
|
|
|
|
|
|
|
|
|
|
// Create keyboard layout menu
|
|
|
|
|
fLayoutMenu = new BMenu("Layout");
|
|
|
|
|
fLayoutMenu = new BMenu(TR("Layout"));
|
|
|
|
|
fLayoutMenu->SetRadioMode(true);
|
|
|
|
|
fLayoutMenu->AddItem(item = new BMenuItem(
|
|
|
|
|
fKeyboardLayoutView->GetKeyboardLayout()->Name(),
|
|
|
|
@ -396,7 +401,7 @@ KeymapWindow::_CreateMenu()
|
|
|
|
|
menuBar->AddItem(fLayoutMenu);
|
|
|
|
|
|
|
|
|
|
// Create the Font menu
|
|
|
|
|
fFontMenu = new BMenu("Font");
|
|
|
|
|
fFontMenu = new BMenu(TR("Font"));
|
|
|
|
|
fFontMenu->SetRadioMode(true);
|
|
|
|
|
int32 numFamilies = count_font_families();
|
|
|
|
|
font_family family, currentFamily;
|
|
|
|
@ -424,9 +429,9 @@ KeymapWindow::_CreateMenu()
|
|
|
|
|
BMenuField*
|
|
|
|
|
KeymapWindow::_CreateDeadKeyMenuField()
|
|
|
|
|
{
|
|
|
|
|
BPopUpMenu* deadKeyMenu = new BPopUpMenu("Select Dead Keys", false, false);
|
|
|
|
|
BPopUpMenu* deadKeyMenu = new BPopUpMenu(TR("Select Dead Keys"), false, false);
|
|
|
|
|
|
|
|
|
|
fAcuteMenu = new BMenu("Acute Trigger");
|
|
|
|
|
fAcuteMenu = new BMenu(TR("Acute Trigger"));
|
|
|
|
|
fAcuteMenu->SetRadioMode(true);
|
|
|
|
|
fAcuteMenu->AddItem(new BMenuItem("\xC2\xB4",
|
|
|
|
|
new BMessage(kMsgDeadKeyAcuteChanged)));
|
|
|
|
@ -436,7 +441,7 @@ KeymapWindow::_CreateDeadKeyMenuField()
|
|
|
|
|
new BMessage(kMsgDeadKeyAcuteChanged)));
|
|
|
|
|
deadKeyMenu->AddItem(fAcuteMenu);
|
|
|
|
|
|
|
|
|
|
fCircumflexMenu = new BMenu("Circumflex Trigger");
|
|
|
|
|
fCircumflexMenu = new BMenu(TR("Circumflex Trigger"));
|
|
|
|
|
fCircumflexMenu->SetRadioMode(true);
|
|
|
|
|
fCircumflexMenu->AddItem(new BMenuItem("^",
|
|
|
|
|
new BMessage(kMsgDeadKeyCircumflexChanged)));
|
|
|
|
@ -444,7 +449,7 @@ KeymapWindow::_CreateDeadKeyMenuField()
|
|
|
|
|
new BMessage(kMsgDeadKeyCircumflexChanged)));
|
|
|
|
|
deadKeyMenu->AddItem(fCircumflexMenu);
|
|
|
|
|
|
|
|
|
|
fDiaeresisMenu = new BMenu("Diaeresis Trigger");
|
|
|
|
|
fDiaeresisMenu = new BMenu(TR("Diaeresis Trigger"));
|
|
|
|
|
fDiaeresisMenu->SetRadioMode(true);
|
|
|
|
|
fDiaeresisMenu->AddItem(new BMenuItem("\xC2\xA8",
|
|
|
|
|
new BMessage(kMsgDeadKeyDiaeresisChanged)));
|
|
|
|
@ -454,7 +459,7 @@ KeymapWindow::_CreateDeadKeyMenuField()
|
|
|
|
|
new BMessage(kMsgDeadKeyDiaeresisChanged)));
|
|
|
|
|
deadKeyMenu->AddItem(fDiaeresisMenu);
|
|
|
|
|
|
|
|
|
|
fGraveMenu = new BMenu("Grave Trigger");
|
|
|
|
|
fGraveMenu = new BMenu(TR("Grave Trigger"));
|
|
|
|
|
fGraveMenu->SetRadioMode(true);
|
|
|
|
|
fGraveMenu->AddItem(new BMenuItem("`",
|
|
|
|
|
new BMessage(kMsgDeadKeyGraveChanged)));
|
|
|
|
@ -462,7 +467,7 @@ KeymapWindow::_CreateDeadKeyMenuField()
|
|
|
|
|
new BMessage(kMsgDeadKeyGraveChanged)));
|
|
|
|
|
deadKeyMenu->AddItem(fGraveMenu);
|
|
|
|
|
|
|
|
|
|
fTildeMenu = new BMenu("Tilde Trigger");
|
|
|
|
|
fTildeMenu = new BMenu(TR("Tilde Trigger"));
|
|
|
|
|
fTildeMenu->SetRadioMode(true);
|
|
|
|
|
fTildeMenu->AddItem(new BMenuItem("~",
|
|
|
|
|
new BMessage(kMsgDeadKeyTildeChanged)));
|
|
|
|
@ -499,9 +504,9 @@ KeymapWindow::_CreateMapLists()
|
|
|
|
|
_SetListViewSize(fUserListView);
|
|
|
|
|
|
|
|
|
|
return BGroupLayoutBuilder(B_VERTICAL)
|
|
|
|
|
.Add(new BStringView("system", "System:"))
|
|
|
|
|
.Add(new BStringView("system", TR("System:")))
|
|
|
|
|
.Add(systemScroller, 3)
|
|
|
|
|
.Add(new BStringView("user", "User:"))
|
|
|
|
|
.Add(new BStringView("user", TR("User:")))
|
|
|
|
|
.Add(userScroller);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -583,13 +588,13 @@ KeymapWindow::_SetKeyboardLayout(const char* path)
|
|
|
|
|
void
|
|
|
|
|
KeymapWindow::_UpdateSwitchShortcutButton()
|
|
|
|
|
{
|
|
|
|
|
const char* label = "Switch Shortcut Keys";
|
|
|
|
|
const char* label = TR("Switch Shortcut Keys");
|
|
|
|
|
if (fCurrentMap.KeyForModifier(B_LEFT_COMMAND_KEY) == 0x5d
|
|
|
|
|
&& fCurrentMap.KeyForModifier(B_LEFT_CONTROL_KEY) == 0x5c) {
|
|
|
|
|
label = "Switch Shortcut Keys To Windows/Linux Mode";
|
|
|
|
|
label = TR("Switch Shortcut Keys To Windows/Linux Mode");
|
|
|
|
|
} else if (fCurrentMap.KeyForModifier(B_LEFT_COMMAND_KEY) == 0x5c
|
|
|
|
|
&& fCurrentMap.KeyForModifier(B_LEFT_CONTROL_KEY) == 0x5d) {
|
|
|
|
|
label = "Switch Shortcut Keys To Haiku Mode";
|
|
|
|
|
label = TR("Switch Shortcut Keys To Haiku Mode");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fSwitchShortcutsButton->SetLabel(label);
|
|
|
|
@ -756,7 +761,7 @@ KeymapWindow::_FillUserMaps()
|
|
|
|
|
entry_ref ref;
|
|
|
|
|
_GetCurrentKeymap(ref);
|
|
|
|
|
|
|
|
|
|
fUserListView->AddItem(new KeymapListItem(ref, "(Current)"));
|
|
|
|
|
fUserListView->AddItem(new KeymapListItem(ref, TR("(Current)")));
|
|
|
|
|
|
|
|
|
|
fCurrentMapName = _GetActiveKeymapName();
|
|
|
|
|
|
|
|
|
|