Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
42a7fef6
Commit
42a7fef6
authored
Aug 09, 2011
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:Sankore/Sankore-3.1
parents
f7a7e94a
caf68d99
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
353 additions
and
311 deletions
+353
-311
UBPreferencesController.cpp
src/core/UBPreferencesController.cpp
+7
-2
UBSettings.cpp
src/core/UBSettings.cpp
+34
-1
UBSettings.h
src/core/UBSettings.h
+5
-0
UBDesktopAnnotationController.cpp
src/desktop/UBDesktopAnnotationController.cpp
+2
-1
UBPlatformUtils_win.cpp
src/frameworks/UBPlatformUtils_win.cpp
+1
-1
UBKeyboardPalette.cpp
src/gui/UBKeyboardPalette.cpp
+11
-13
UBKeyboardPalette_linux.cpp
src/gui/UBKeyboardPalette_linux.cpp
+189
-189
UBKeyboardPalette_mac.cpp
src/gui/UBKeyboardPalette_mac.cpp
+96
-96
UBGraphicsTriangle.cpp
src/tools/UBGraphicsTriangle.cpp
+8
-8
No files found.
src/core/UBPreferencesController.cpp
View file @
42a7fef6
...
@@ -106,8 +106,13 @@ void UBPreferencesController::wire()
...
@@ -106,8 +106,13 @@ void UBPreferencesController::wire()
// OSK preferences
// OSK preferences
mPreferencesUI
->
keyboardPaletteKeyButtonSize
->
addItem
(
"29x29"
);
mPreferencesUI
->
keyboardPaletteKeyButtonSize
->
addItem
(
"41x41"
);
for
(
int
i
=
0
;
i
<
settings
->
supportedKeyboardSizes
->
size
();
i
++
)
mPreferencesUI
->
keyboardPaletteKeyButtonSize
->
addItem
(
settings
->
supportedKeyboardSizes
->
at
(
i
));
// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("29x29");
// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("30x30");
// mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("41x41");
connect
(
mPreferencesUI
->
keyboardPaletteKeyButtonSize
,
SIGNAL
(
currentIndexChanged
(
const
QString
&
)),
settings
->
boardKeyboardPaletteKeyBtnSize
,
SLOT
(
setString
(
const
QString
&
)));
connect
(
mPreferencesUI
->
keyboardPaletteKeyButtonSize
,
SIGNAL
(
currentIndexChanged
(
const
QString
&
)),
settings
->
boardKeyboardPaletteKeyBtnSize
,
SLOT
(
setString
(
const
QString
&
)));
...
...
src/core/UBSettings.cpp
View file @
42a7fef6
...
@@ -120,6 +120,8 @@ QSettings* UBSettings::getAppSettings()
...
@@ -120,6 +120,8 @@ QSettings* UBSettings::getAppSettings()
UBSettings
::
UBSettings
(
QObject
*
parent
)
UBSettings
::
UBSettings
(
QObject
*
parent
)
:
QObject
(
parent
)
:
QObject
(
parent
)
{
{
InitKeyboardPaletteKeyBtnSizes
();
mAppSettings
=
UBSettings
::
getAppSettings
();
mAppSettings
=
UBSettings
::
getAppSettings
();
QString
userSettingsFile
=
UBSettings
::
uniboardDataDirectory
()
+
"/UniboardUser.config"
;
QString
userSettingsFile
=
UBSettings
::
uniboardDataDirectory
()
+
"/UniboardUser.config"
;
...
@@ -133,8 +135,38 @@ UBSettings::UBSettings(QObject *parent)
...
@@ -133,8 +135,38 @@ UBSettings::UBSettings(QObject *parent)
UBSettings
::~
UBSettings
()
UBSettings
::~
UBSettings
()
{
{
delete
mAppSettings
;
delete
mAppSettings
;
if
(
supportedKeyboardSizes
)
delete
supportedKeyboardSizes
;
}
void
UBSettings
::
InitKeyboardPaletteKeyBtnSizes
()
{
supportedKeyboardSizes
=
new
QStringList
();
supportedKeyboardSizes
->
append
(
"29x29"
);
supportedKeyboardSizes
->
append
(
"41x41"
);
}
}
void
UBSettings
::
ValidateKeyboardPaletteKeyBtnSize
()
{
// if boardKeyboardPaletteKeyBtnSize is not initialized, or supportedKeyboardSizes not initialized or empty
if
(
!
boardKeyboardPaletteKeyBtnSize
||
!
supportedKeyboardSizes
||
supportedKeyboardSizes
->
size
()
==
0
)
return
;
// get original size value
QString
origValue
=
boardKeyboardPaletteKeyBtnSize
->
get
().
toString
();
// parse available size values, for make sure original value is valid
for
(
int
i
=
0
;
i
<
supportedKeyboardSizes
->
size
();
i
++
)
{
int
compareCode
=
QString
::
compare
(
origValue
,
supportedKeyboardSizes
->
at
(
i
));
if
(
compareCode
==
0
)
return
;
}
// if original value is invalid, than set it value to first value from avaliable list
boardKeyboardPaletteKeyBtnSize
->
set
(
supportedKeyboardSizes
->
at
(
0
));
}
void
UBSettings
::
init
()
void
UBSettings
::
init
()
{
{
...
@@ -192,7 +224,8 @@ void UBSettings::init()
...
@@ -192,7 +224,8 @@ void UBSettings::init()
boardUseHighResTabletEvent
=
new
UBSetting
(
this
,
"Board"
,
"UseHighResTabletEvent"
,
true
);
boardUseHighResTabletEvent
=
new
UBSetting
(
this
,
"Board"
,
"UseHighResTabletEvent"
,
true
);
// boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true);
// boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true);
boardKeyboardPaletteKeyBtnSize
=
new
UBSetting
(
this
,
"Board"
,
"KeyboardPaletteKeyBtnSize"
,
"24x24"
);
boardKeyboardPaletteKeyBtnSize
=
new
UBSetting
(
this
,
"Board"
,
"KeyboardPaletteKeyBtnSize"
,
"16x16"
);
ValidateKeyboardPaletteKeyBtnSize
();
QStringList
penLightBackgroundColors
;
QStringList
penLightBackgroundColors
;
penLightBackgroundColors
<<
"#000000"
<<
"#FF0000"
<<
"#004080"
<<
"#008000"
<<
"#C87400"
<<
"#800040"
<<
"#008080"
<<
"#5F2D0A"
;
penLightBackgroundColors
<<
"#000000"
<<
"#FF0000"
<<
"#004080"
<<
"#008000"
<<
"#C87400"
<<
"#800040"
<<
"#008080"
<<
"#5F2D0A"
;
...
...
src/core/UBSettings.h
View file @
42a7fef6
...
@@ -37,6 +37,11 @@ class UBSettings : public QObject
...
@@ -37,6 +37,11 @@ class UBSettings : public QObject
public
:
public
:
QStringList
*
supportedKeyboardSizes
;
void
InitKeyboardPaletteKeyBtnSizes
();
void
ValidateKeyboardPaletteKeyBtnSize
();
int
penWidthIndex
();
int
penWidthIndex
();
qreal
currentPenWidth
();
qreal
currentPenWidth
();
...
...
src/desktop/UBDesktopAnnotationController.cpp
View file @
42a7fef6
...
@@ -88,7 +88,8 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
...
@@ -88,7 +88,8 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
if
(
UBPlatformUtils
::
hasVirtualKeyboard
())
if
(
UBPlatformUtils
::
hasVirtualKeyboard
())
{
{
mKeyboardPalette
=
UBKeyboardPalette
::
create
(
mTransparentDrawingView
);
mKeyboardPalette
=
UBKeyboardPalette
::
create
(
mTransparentDrawingView
);
//mKeyboardPalette->setParent(mTransparentDrawingView);
mKeyboardPalette
->
setParent
(
mTransparentDrawingView
);
connect
(
mKeyboardPalette
,
SIGNAL
(
keyboardActivated
(
bool
)),
mTransparentDrawingView
,
SLOT
(
virtualKeyboardActivated
(
bool
)));
}
}
connect
(
mDesktopPalette
,
SIGNAL
(
uniboardClick
()),
this
,
SLOT
(
goToUniboard
()));
connect
(
mDesktopPalette
,
SIGNAL
(
uniboardClick
()),
this
,
SLOT
(
goToUniboard
()));
...
...
src/frameworks/UBPlatformUtils_win.cpp
View file @
42a7fef6
...
@@ -363,7 +363,7 @@ void UBPlatformUtils::initializeKeyboardLayouts()
...
@@ -363,7 +363,7 @@ void UBPlatformUtils::initializeKeyboardLayouts()
void
UBPlatformUtils
::
destroyKeyboardLayouts
()
void
UBPlatformUtils
::
destroyKeyboardLayouts
()
{
{
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
i
=
0
;
i
<
nKeyboardLayouts
;
i
++
)
delete
keyboardLayouts
[
i
];
delete
keyboardLayouts
[
i
];
delete
[]
keyboardLayouts
;
delete
[]
keyboardLayouts
;
keyboardLayouts
=
NULL
;
keyboardLayouts
=
NULL
;
...
...
src/gui/UBKeyboardPalette.cpp
View file @
42a7fef6
...
@@ -82,8 +82,6 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
...
@@ -82,8 +82,6 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
connect
(
inst
,
SIGNAL
(
localeChanged
(
int
)),
instance
,
SLOT
(
syncLocale
(
int
)));
connect
(
inst
,
SIGNAL
(
localeChanged
(
int
)),
instance
,
SLOT
(
syncLocale
(
int
)));
connect
(
instance
,
SIGNAL
(
localeChanged
(
int
)),
inst
,
SLOT
(
syncLocale
(
int
)));
connect
(
instance
,
SIGNAL
(
localeChanged
(
int
)),
inst
,
SLOT
(
syncLocale
(
int
)));
// connect(instance, SIGNAL(closed()), inst, )
}
}
return
instance
;
return
instance
;
...
@@ -91,7 +89,7 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
...
@@ -91,7 +89,7 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
void
UBKeyboardPalette
::
hideKeyboard
()
void
UBKeyboardPalette
::
hideKeyboard
()
{
{
UBApplication
::
mainWindow
->
actionVirtualKeyboard
->
activate
(
QAction
.
Trigger
);
UBApplication
::
mainWindow
->
actionVirtualKeyboard
->
activate
(
QAction
::
Trigger
);
}
}
void
UBKeyboardPalette
::
syncPosition
(
const
QPoint
&
pos
)
void
UBKeyboardPalette
::
syncPosition
(
const
QPoint
&
pos
)
...
@@ -125,20 +123,20 @@ void UBKeyboardPalette::setInput(const UBKeyboardLocale* locale)
...
@@ -125,20 +123,20 @@ void UBKeyboardPalette::setInput(const UBKeyboardLocale* locale)
UBKeyboardPalette
::~
UBKeyboardPalette
()
UBKeyboardPalette
::~
UBKeyboardPalette
()
{
{
for
(
int
i
=
0
;
i
<
47
;
i
++
)
//
for (int i=0; i<47; i++)
delete
buttons
[
i
];
//
delete buttons[i];
delete
[]
buttons
;
delete
[]
buttons
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
//
for (int i=0; i<8; i++)
delete
ctrlButtons
[
i
];
//
delete ctrlButtons[i];
delete
[]
ctrlButtons
;
delete
[]
ctrlButtons
;
if
(
locales
!=
NULL
)
//
if (locales!=NULL)
{
//
{
for
(
int
i
=
0
;
i
<
nLocalesCount
;
i
++
)
//
for (int i=0; i<nLocalesCount; i++)
delete
locales
[
i
];
//
delete locales[i];
delete
[]
locales
;
//
delete [] locales;
}
//
}
if
(
currBtnImages
!=
NULL
)
if
(
currBtnImages
!=
NULL
)
{
{
...
...
src/gui/UBKeyboardPalette_linux.cpp
View file @
42a7fef6
...
@@ -12,192 +12,192 @@
...
@@ -12,192 +12,192 @@
* You should have received a copy of the GNU General Public License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
#include "UBKeyboardPalette.h"
#include "UBKeyboardPalette.h"
#include <X11/Xlib.h>
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/keysym.h>
// The key code to be sent.
// The key code to be sent.
// A full list of available codes can be found in /usr/include/X11/keysymdef.h
// A full list of available codes can be found in /usr/include/X11/keysymdef.h
//#define KEYCODE XK_Down
//#define KEYCODE XK_Down
// Function to create a keyboard event
// Function to create a keyboard event
XKeyEvent
createKeyEvent
(
Display
*
display
,
Window
&
win
,
XKeyEvent
createKeyEvent
(
Display
*
display
,
Window
&
win
,
Window
&
winRoot
,
bool
press
,
Window
&
winRoot
,
bool
press
,
int
keycode
,
int
modifiers
)
int
keycode
,
int
modifiers
)
{
{
XKeyEvent
event
;
XKeyEvent
event
;
event
.
display
=
display
;
event
.
display
=
display
;
event
.
window
=
win
;
event
.
window
=
win
;
event
.
root
=
winRoot
;
event
.
root
=
winRoot
;
event
.
subwindow
=
None
;
event
.
subwindow
=
None
;
event
.
time
=
CurrentTime
;
event
.
time
=
CurrentTime
;
event
.
x
=
1
;
event
.
x
=
1
;
event
.
y
=
1
;
event
.
y
=
1
;
event
.
x_root
=
1
;
event
.
x_root
=
1
;
event
.
y_root
=
1
;
event
.
y_root
=
1
;
event
.
same_screen
=
True
;
event
.
same_screen
=
True
;
event
.
keycode
=
keycode
;
event
.
keycode
=
keycode
;
event
.
state
=
modifiers
;
event
.
state
=
modifiers
;
if
(
press
)
if
(
press
)
event
.
type
=
KeyPress
;
event
.
type
=
KeyPress
;
else
else
event
.
type
=
KeyRelease
;
event
.
type
=
KeyRelease
;
return
event
;
return
event
;
}
}
void
x11SendKey
(
Display
*
display
,
int
keyCode
,
int
modifiers
)
void
x11SendKey
(
Display
*
display
,
int
keyCode
,
int
modifiers
)
{
{
// Get the root window for the current display.
// Get the root window for the current display.
Window
winRoot
=
XDefaultRootWindow
(
display
);
Window
winRoot
=
XDefaultRootWindow
(
display
);
if
(
winRoot
==
0
)
if
(
winRoot
==
0
)
return
;
return
;
// Find the window which has the current keyboard focus.
// Find the window which has the current keyboard focus.
Window
winFocus
;
Window
winFocus
;
int
revert
;
int
revert
;
XGetInputFocus
(
display
,
&
winFocus
,
&
revert
);
XGetInputFocus
(
display
,
&
winFocus
,
&
revert
);
// Send a fake key press event to the window.
// Send a fake key press event to the window.
XKeyEvent
event
=
createKeyEvent
(
display
,
winFocus
,
winRoot
,
true
,
keyCode
,
modifiers
);
XKeyEvent
event
=
createKeyEvent
(
display
,
winFocus
,
winRoot
,
true
,
keyCode
,
modifiers
);
XSendEvent
(
event
.
display
,
event
.
window
,
True
,
KeyPressMask
,
(
XEvent
*
)
&
event
);
XSendEvent
(
event
.
display
,
event
.
window
,
True
,
KeyPressMask
,
(
XEvent
*
)
&
event
);
// Send a fake key release event to the window.
// Send a fake key release event to the window.
event
=
createKeyEvent
(
display
,
winFocus
,
winRoot
,
false
,
keyCode
,
modifiers
);
event
=
createKeyEvent
(
display
,
winFocus
,
winRoot
,
false
,
keyCode
,
modifiers
);
XSendEvent
(
event
.
display
,
event
.
window
,
True
,
KeyPressMask
,
(
XEvent
*
)
&
event
);
XSendEvent
(
event
.
display
,
event
.
window
,
True
,
KeyPressMask
,
(
XEvent
*
)
&
event
);
}
}
void
UBKeyboardButton
::
sendUnicodeSymbol
(
unsigned
int
nSymbol1
,
unsigned
int
nSymbol2
,
bool
shift
)
void
UBKeyboardButton
::
sendUnicodeSymbol
(
unsigned
int
nSymbol1
,
unsigned
int
nSymbol2
,
bool
shift
)
{
{
unsigned
int
nSymbol
=
shift
?
nSymbol2
:
nSymbol1
;
unsigned
int
nSymbol
=
shift
?
nSymbol2
:
nSymbol1
;
// Obtain the X11 display.
// Obtain the X11 display.
Display
*
display
=
XOpenDisplay
(
0
);
Display
*
display
=
XOpenDisplay
(
0
);
if
(
display
==
NULL
)
if
(
display
==
NULL
)
return
;
return
;
KeyCode
keyCode
=
XKeysymToKeycode
(
display
,
nSymbol
);
KeyCode
keyCode
=
XKeysymToKeycode
(
display
,
nSymbol
);
if
(
keyCode
!=
NoSymbol
)
if
(
keyCode
!=
NoSymbol
)
{
{
x11SendKey
(
display
,
keyCode
,
shift
);
x11SendKey
(
display
,
keyCode
,
shift
);
}
}
XCloseDisplay
(
display
);
XCloseDisplay
(
display
);
}
}
void
UBKeyboardButton
::
sendControlSymbol
(
int
nSymbol
)
void
UBKeyboardButton
::
sendControlSymbol
(
int
nSymbol
)
{
{
// Obtain the X11 display.
// Obtain the X11 display.
Display
*
display
=
XOpenDisplay
(
0
);
Display
*
display
=
XOpenDisplay
(
0
);
if
(
display
==
NULL
)
if
(
display
==
NULL
)
return
;
return
;
KeyCode
keyCode
=
XKeysymToKeycode
(
display
,
nSymbol
);
KeyCode
keyCode
=
XKeysymToKeycode
(
display
,
nSymbol
);
if
(
keyCode
!=
NoSymbol
)
if
(
keyCode
!=
NoSymbol
)
{
{
x11SendKey
(
display
,
keyCode
,
0
);
x11SendKey
(
display
,
keyCode
,
0
);
}
}
XCloseDisplay
(
display
);
XCloseDisplay
(
display
);
}
}
void
UBKeyboardPalette
::
createCtrlButtons
()
void
UBKeyboardPalette
::
createCtrlButtons
()
{
{
ctrlButtons
=
new
UBKeyboardButton
*
[
8
];
ctrlButtons
=
new
UBKeyboardButton
*
[
8
];
ctrlButtons
[
0
]
=
new
UBCntrlButton
(
this
,
"<-"
,
XK_BackSpace
);
ctrlButtons
[
0
]
=
new
UBCntrlButton
(
this
,
"<-"
,
XK_BackSpace
);
ctrlButtons
[
1
]
=
new
UBCntrlButton
(
this
,
"<->"
,
XK_Tab
);
ctrlButtons
[
1
]
=
new
UBCntrlButton
(
this
,
"<->"
,
XK_Tab
);
ctrlButtons
[
2
]
=
new
UBCntrlButton
(
this
,
"Enter"
,
XK_Return
);
ctrlButtons
[
2
]
=
new
UBCntrlButton
(
this
,
"Enter"
,
XK_Return
);
ctrlButtons
[
3
]
=
new
UBCapsLockButton
(
this
);
ctrlButtons
[
3
]
=
new
UBCapsLockButton
(
this
,
"capslock"
);
ctrlButtons
[
4
]
=
new
UBCapsLockButton
(
this
);
ctrlButtons
[
4
]
=
new
UBCapsLockButton
(
this
,
"capslock"
);
ctrlButtons
[
5
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
5
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
6
]
=
new
UBCntrlButton
(
this
,
""
,
XK_space
);
ctrlButtons
[
6
]
=
new
UBCntrlButton
(
this
,
""
,
XK_space
);
ctrlButtons
[
7
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
7
]
=
new
UBLocaleButton
(
this
);
}
}
void
UBKeyboardPalette
::
onActivated
(
bool
activated
)
void
UBKeyboardPalette
::
onActivated
(
bool
activated
)
{
{
if
(
activated
)
if
(
activated
)
{
{
Display
*
display
=
XOpenDisplay
(
0
);
Display
*
display
=
XOpenDisplay
(
0
);
if
(
display
==
NULL
)
if
(
display
==
NULL
)
return
;
return
;
XDisplayKeycodes
(
display
,
&
this
->
min_keycodes
,
&
this
->
max_keycodes
);
XDisplayKeycodes
(
display
,
&
this
->
min_keycodes
,
&
this
->
max_keycodes
);
KeySym
*
keySyms
=
XGetKeyboardMapping
(
display
,
min_keycodes
,
KeySym
*
keySyms
=
XGetKeyboardMapping
(
display
,
min_keycodes
,
max_keycodes
-
min_keycodes
,
&
this
->
byte_per_code
);
max_keycodes
-
min_keycodes
,
&
this
->
byte_per_code
);
storage
=
keySyms
;
storage
=
keySyms
;
XCloseDisplay
(
display
);
XCloseDisplay
(
display
);
onLocaleChanged
(
locales
[
nCurrentLocale
]);
onLocaleChanged
(
locales
[
nCurrentLocale
]);
}
}
else
else
{
{
Display
*
display
=
XOpenDisplay
(
0
);
Display
*
display
=
XOpenDisplay
(
0
);
if
(
display
==
NULL
)
if
(
display
==
NULL
)
return
;
return
;
KeySym
*
keySyms
=
(
KeySym
*
)
storage
;
KeySym
*
keySyms
=
(
KeySym
*
)
storage
;
if
(
keySyms
!=
NULL
)
if
(
keySyms
!=
NULL
)
{
{
XChangeKeyboardMapping
(
display
,
min_keycodes
,
byte_per_code
,
XChangeKeyboardMapping
(
display
,
min_keycodes
,
byte_per_code
,
keySyms
,
max_keycodes
-
min_keycodes
);
keySyms
,
max_keycodes
-
min_keycodes
);
XFree
(
keySyms
);
XFree
(
keySyms
);
}
}
XCloseDisplay
(
display
);
XCloseDisplay
(
display
);
}
}
}
}
void
setSymbolsFromButton
(
Display
*
display
,
void
setSymbolsFromButton
(
Display
*
display
,
const
UBKeyboardLocale
&
locale
,
const
UBKeyboardLocale
&
locale
,
int
byte_per_code
,
int
byte_per_code
,
int
nFromSymbol
,
int
nFromSymbol
,
int
nFromButton
,
int
nFromButton
,
int
count
)
int
count
)
{
{
KeySym
*
keySyms
=
new
KeySym
[
count
*
byte_per_code
];
KeySym
*
keySyms
=
new
KeySym
[
count
*
byte_per_code
];
for
(
int
i
=
0
;
i
<
count
;
i
++
)
for
(
int
i
=
0
;
i
<
count
;
i
++
)
{
{
keySyms
[
byte_per_code
*
i
+
0
]
=
keySyms
[
byte_per_code
*
i
+
0
]
=
keySyms
[
byte_per_code
*
i
+
2
]
=
locale
[
nFromButton
+
i
]
->
code1
;
keySyms
[
byte_per_code
*
i
+
2
]
=
locale
[
nFromButton
+
i
]
->
code1
;
keySyms
[
byte_per_code
*
i
+
1
]
=
keySyms
[
byte_per_code
*
i
+
1
]
=
keySyms
[
byte_per_code
*
i
+
3
]
=
locale
[
nFromButton
+
i
]
->
code2
;
keySyms
[
byte_per_code
*
i
+
3
]
=
locale
[
nFromButton
+
i
]
->
code2
;
for
(
int
j
=
4
;
j
<
byte_per_code
;
j
++
)
for
(
int
j
=
4
;
j
<
byte_per_code
;
j
++
)
keySyms
[
byte_per_code
*
i
+
j
]
=
NoSymbol
;
keySyms
[
byte_per_code
*
i
+
j
]
=
NoSymbol
;
}
}
XChangeKeyboardMapping
(
display
,
nFromSymbol
,
byte_per_code
,
keySyms
,
count
);
XChangeKeyboardMapping
(
display
,
nFromSymbol
,
byte_per_code
,
keySyms
,
count
);
delete
[]
keySyms
;
delete
[]
keySyms
;
}
}
void
UBKeyboardPalette
::
onLocaleChanged
(
UBKeyboardLocale
*
locale
)
void
UBKeyboardPalette
::
onLocaleChanged
(
UBKeyboardLocale
*
locale
)
{
{
Display
*
display
=
XOpenDisplay
(
0
);
Display
*
display
=
XOpenDisplay
(
0
);
if
(
display
==
NULL
)
if
(
display
==
NULL
)
return
;
return
;
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
41
,
0
,
1
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
41
,
0
,
1
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
2
,
1
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
2
,
1
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
16
,
13
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
16
,
13
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
30
,
25
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
30
,
25
,
12
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
44
,
37
,
10
);
setSymbolsFromButton
(
display
,
*
locale
,
byte_per_code
,
min_keycodes
+
44
,
37
,
10
);
XCloseDisplay
(
display
);
XCloseDisplay
(
display
);
}
}
src/gui/UBKeyboardPalette_mac.cpp
View file @
42a7fef6
...
@@ -12,99 +12,99 @@
...
@@ -12,99 +12,99 @@
* You should have received a copy of the GNU General Public License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
#include "UBKeyboardPalette.h"
#include "UBKeyboardPalette.h"
#include <stdio.h>
#include <stdio.h>
#include <CoreServices/CoreServices.h>
#include <CoreServices/CoreServices.h>
#include <ApplicationServices/ApplicationServices.h>
#include <ApplicationServices/ApplicationServices.h>
#include <Carbon/Carbon.h>
#include <Carbon/Carbon.h>
#include <QMap>
#include <QMap>
#include <QString>
#include <QString>
void
UBKeyboardButton
::
sendUnicodeSymbol
(
unsigned
int
nSymbol1
,
unsigned
int
nSymbol2
,
bool
shift
)
void
UBKeyboardButton
::
sendUnicodeSymbol
(
unsigned
int
nSymbol1
,
unsigned
int
nSymbol2
,
bool
shift
)
{
{
unsigned
int
nSymbol
=
(
shift
)
?
nSymbol2
:
nSymbol1
;
unsigned
int
nSymbol
=
(
shift
)
?
nSymbol2
:
nSymbol1
;
if
(
shift
)
if
(
shift
)
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
56
,
true
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
56
,
true
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
true
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
true
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
false
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
false
));
if
(
shift
)
if
(
shift
)
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
56
,
false
));
CGEventPost
(
kCGSessionEventTap
,
CGEventCreateKeyboardEvent
(
NULL
,
56
,
false
));
}
}
void
UBKeyboardButton
::
sendControlSymbol
(
int
nSymbol
)
void
UBKeyboardButton
::
sendControlSymbol
(
int
nSymbol
)
{
{
CGEventRef
event1
=
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
true
);
CGEventRef
event1
=
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
true
);
CGEventRef
event2
=
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
false
);
CGEventRef
event2
=
CGEventCreateKeyboardEvent
(
NULL
,
nSymbol
,
false
);
CGEventPost
(
kCGHIDEventTap
,
event1
);
CGEventPost
(
kCGHIDEventTap
,
event1
);
CGEventPost
(
kCGHIDEventTap
,
event2
);
CGEventPost
(
kCGHIDEventTap
,
event2
);
}
}
void
UBKeyboardPalette
::
createCtrlButtons
()
void
UBKeyboardPalette
::
createCtrlButtons
()
{
{
ctrlButtons
=
new
UBKeyboardButton
*
[
7
];
ctrlButtons
=
new
UBKeyboardButton
*
[
7
];
ctrlButtons
[
0
]
=
new
UBCntrlButton
(
this
,
"<-"
,
51
);
ctrlButtons
[
0
]
=
new
UBCntrlButton
(
this
,
"<-"
,
51
);
ctrlButtons
[
1
]
=
new
UBCntrlButton
(
this
,
"<->"
,
48
);
ctrlButtons
[
1
]
=
new
UBCntrlButton
(
this
,
"<->"
,
48
);
ctrlButtons
[
2
]
=
new
UBCntrlButton
(
this
,
"Enter"
,
76
);
ctrlButtons
[
2
]
=
new
UBCntrlButton
(
this
,
"Enter"
,
76
);
ctrlButtons
[
3
]
=
new
UBCapsLockButton
(
this
);
ctrlButtons
[
3
]
=
new
UBCapsLockButton
(
this
,
"capslock"
);
ctrlButtons
[
4
]
=
new
UBCapsLockButton
(
this
);
ctrlButtons
[
4
]
=
new
UBCapsLockButton
(
this
,
"capslock"
);
ctrlButtons
[
5
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
5
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
6
]
=
new
UBCntrlButton
(
this
,
""
,
49
);
ctrlButtons
[
6
]
=
new
UBCntrlButton
(
this
,
""
,
49
);
ctrlButtons
[
7
]
=
new
UBLocaleButton
(
this
);
ctrlButtons
[
7
]
=
new
UBLocaleButton
(
this
);
}
}
void
SetMacLocaleByIdentifier
(
const
QString
&
id
)
void
SetMacLocaleByIdentifier
(
const
QString
&
id
)
{
{
const
char
*
strName
=
id
.
toAscii
().
data
();
const
char
*
strName
=
id
.
toAscii
().
data
();
CFStringRef
iName
=
CFStringCreateWithCString
(
NULL
,
strName
,
kCFStringEncodingMacRoman
);
CFStringRef
iName
=
CFStringCreateWithCString
(
NULL
,
strName
,
kCFStringEncodingMacRoman
);
CFStringRef
keys
[]
=
{
kTISPropertyInputSourceCategory
,
kTISPropertyInputSourceID
};
CFStringRef
keys
[]
=
{
kTISPropertyInputSourceCategory
,
kTISPropertyInputSourceID
};
CFStringRef
values
[]
=
{
kTISCategoryKeyboardInputSource
,
iName
};
CFStringRef
values
[]
=
{
kTISCategoryKeyboardInputSource
,
iName
};
CFDictionaryRef
dict
=
CFDictionaryCreate
(
NULL
,
(
const
void
**
)
keys
,
(
const
void
**
)
values
,
2
,
NULL
,
NULL
);
CFDictionaryRef
dict
=
CFDictionaryCreate
(
NULL
,
(
const
void
**
)
keys
,
(
const
void
**
)
values
,
2
,
NULL
,
NULL
);
CFArrayRef
kbds
=
TISCreateInputSourceList
(
dict
,
true
);
CFArrayRef
kbds
=
TISCreateInputSourceList
(
dict
,
true
);
if
(
CFArrayGetCount
(
kbds
)
!=
0
)
if
(
CFArrayGetCount
(
kbds
)
!=
0
)
{
{
TISInputSourceRef
klRef
=
(
TISInputSourceRef
)
CFArrayGetValueAtIndex
(
kbds
,
0
);
TISInputSourceRef
klRef
=
(
TISInputSourceRef
)
CFArrayGetValueAtIndex
(
kbds
,
0
);
if
(
klRef
!=
NULL
)
if
(
klRef
!=
NULL
)
TISSelectInputSource
(
klRef
);
TISSelectInputSource
(
klRef
);
}
}
}
}
void
UBKeyboardPalette
::
onActivated
(
bool
activated
)
void
UBKeyboardPalette
::
onActivated
(
bool
activated
)
{
{
if
(
activated
)
if
(
activated
)
{
{
TISInputSourceRef
selectedLocale
=
TISCopyCurrentKeyboardInputSource
();
TISInputSourceRef
selectedLocale
=
TISCopyCurrentKeyboardInputSource
();
CFStringRef
sr
=
(
CFStringRef
)
TISGetInputSourceProperty
(
selectedLocale
,
CFStringRef
sr
=
(
CFStringRef
)
TISGetInputSourceProperty
(
selectedLocale
,
kTISPropertyInputSourceID
);
kTISPropertyInputSourceID
);
if
(
sr
!=
NULL
)
if
(
sr
!=
NULL
)
{
{
char
tmp
[
1024
];
char
tmp
[
1024
];
CFStringGetCString
(
sr
,
tmp
,
1024
,
0
);
CFStringGetCString
(
sr
,
tmp
,
1024
,
0
);
activeLocale
=
tmp
;
activeLocale
=
tmp
;
}
}
else
else
activeLocale
=
""
;
activeLocale
=
""
;
onLocaleChanged
(
locales
[
nCurrentLocale
]);
onLocaleChanged
(
locales
[
nCurrentLocale
]);
}
}
else
else
{
{
if
(
activeLocale
!=
""
)
if
(
activeLocale
!=
""
)
SetMacLocaleByIdentifier
(
activeLocale
);
SetMacLocaleByIdentifier
(
activeLocale
);
}
}
}
}
void
UBKeyboardPalette
::
onLocaleChanged
(
UBKeyboardLocale
*
locale
)
void
UBKeyboardPalette
::
onLocaleChanged
(
UBKeyboardLocale
*
locale
)
{
{
SetMacLocaleByIdentifier
(
locale
->
id
);
SetMacLocaleByIdentifier
(
locale
->
id
);
}
}
src/tools/UBGraphicsTriangle.cpp
View file @
42a7fef6
...
@@ -607,13 +607,13 @@ void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
...
@@ -607,13 +607,13 @@ void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF
delta
=
event
->
pos
()
-
event
->
lastPos
();
QPointF
delta
=
event
->
pos
()
-
event
->
lastPos
();
if
(
mOrientation
==
TopLeft
||
mOrientation
==
BottomLeft
)
if
(
mOrientation
==
TopLeft
||
mOrientation
==
BottomLeft
)
{
{
if
(
rect
().
width
()
+
delta
.
x
()
<
sMinWidth
)
if
(
rect
().
width
()
+
delta
.
x
()
<
(
qreal
)
sMinWidth
)
delta
.
setX
(
sMinWidth
-
rect
().
width
());
delta
.
setX
(
(
qreal
)
sMinWidth
-
rect
().
width
());
}
}
else
else
{
{
if
(
rect
().
width
()
-
delta
.
x
()
<
sMinWidth
)
if
(
rect
().
width
()
-
delta
.
x
()
<
(
qreal
)
sMinWidth
)
delta
.
setX
(
sMinWidth
-
rect
().
width
());
delta
.
setX
(
(
qreal
)
sMinWidth
-
rect
().
width
());
}
}
if
(
mOrientation
==
TopLeft
||
mOrientation
==
BottomLeft
)
if
(
mOrientation
==
TopLeft
||
mOrientation
==
BottomLeft
)
{
{
...
@@ -639,13 +639,13 @@ void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
...
@@ -639,13 +639,13 @@ void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF
delta
=
event
->
pos
()
-
event
->
lastPos
();
QPointF
delta
=
event
->
pos
()
-
event
->
lastPos
();
if
(
mOrientation
==
BottomRight
||
mOrientation
==
BottomLeft
)
if
(
mOrientation
==
BottomRight
||
mOrientation
==
BottomLeft
)
{
{
if
(
rect
().
height
()
-
delta
.
y
()
<
sMinHeight
)
if
(
rect
().
height
()
-
delta
.
y
()
<
(
qreal
)
sMinHeight
)
delta
.
setY
(
sMinHeight
-
rect
().
height
());
delta
.
setY
(
(
qreal
)
sMinHeight
-
rect
().
height
());
}
}
else
else
{
{
if
(
rect
().
height
()
+
delta
.
y
()
<
sMinHeight
)
if
(
rect
().
height
()
+
delta
.
y
()
<
(
qreal
)
sMinHeight
)
delta
.
setY
(
sMinHeight
-
rect
().
height
());
delta
.
setY
(
(
qreal
)
sMinHeight
-
rect
().
height
());
}
}
if
(
mOrientation
==
BottomRight
||
mOrientation
==
BottomLeft
)
if
(
mOrientation
==
BottomRight
||
mOrientation
==
BottomLeft
)
setRect
(
QRectF
(
setRect
(
QRectF
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment