-
Notifications
You must be signed in to change notification settings - Fork 103
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Gurgen Hovhannisyan
authored and
Gurgen Hovhannisyan
committed
Mar 27, 2019
1 parent
140a498
commit 7727ec6
Showing
15 changed files
with
847 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
# Miscellaneous | ||
*.class | ||
*.lock | ||
*.log | ||
*.pyc | ||
*.swp | ||
.DS_Store | ||
.atom/ | ||
.buildlog/ | ||
.history | ||
.svn/ | ||
|
||
# IntelliJ related | ||
*.iml | ||
*.ipr | ||
*.iws | ||
.idea/ | ||
|
||
# Visual Studio Code related | ||
.vscode/ | ||
|
||
# Flutter/Dart/Pub related | ||
**/doc/api/ | ||
.dart_tool/ | ||
.flutter-plugins | ||
.packages | ||
.pub-cache/ | ||
.pub/ | ||
build/ | ||
|
||
# Android related | ||
**/android/**/gradle-wrapper.jar | ||
**/android/.gradle | ||
**/android/captures/ | ||
**/android/gradlew | ||
**/android/gradlew.bat | ||
**/android/local.properties | ||
**/android/**/GeneratedPluginRegistrant.java | ||
|
||
# iOS/XCode related | ||
**/ios/**/*.mode1v3 | ||
**/ios/**/*.mode2v3 | ||
**/ios/**/*.moved-aside | ||
**/ios/**/*.pbxuser | ||
**/ios/**/*.perspectivev3 | ||
**/ios/**/*sync/ | ||
**/ios/**/.sconsign.dblite | ||
**/ios/**/.tags* | ||
**/ios/**/.vagrant/ | ||
**/ios/**/DerivedData/ | ||
**/ios/**/Icon? | ||
**/ios/**/Pods/ | ||
**/ios/**/.symlinks/ | ||
**/ios/**/profile | ||
**/ios/**/xcuserdata | ||
**/ios/.generated/ | ||
**/ios/Flutter/App.framework | ||
**/ios/Flutter/Flutter.framework | ||
**/ios/Flutter/Generated.xcconfig | ||
**/ios/Flutter/app.flx | ||
**/ios/Flutter/app.zip | ||
**/ios/Flutter/flutter_assets/ | ||
**/ios/ServiceDefinitions.json | ||
**/ios/Runner/GeneratedPluginRegistrant.* | ||
|
||
# Exceptions to above rules. | ||
!**/ios/**/default.mode1v3 | ||
!**/ios/**/default.mode2v3 | ||
!**/ios/**/default.pbxuser | ||
!**/ios/**/default.perspectivev3 | ||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# This file tracks properties of this Flutter project. | ||
# Used by Flutter tool to assess capabilities and perform upgrades etc. | ||
# | ||
# This file should be version controlled and should not be manually edited. | ||
|
||
version: | ||
revision: 59ce7d6bff0d0626ae4b90787bf993ebcdc4b110 | ||
channel: dev | ||
|
||
project_type: package |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
## [0.0.1] - 03/28/2019. | ||
|
||
* Inital release. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,194 @@ | ||
|
||
<br> | ||
<p align="center"> | ||
<img style="height:350px;" alt="FlutterBlue" src="./screen1.png" /> | ||
</p> | ||
<br> | ||
<p align="center"> | ||
<img style="height:350px;" alt="FlutterBlue" src="./screen2.png" /> | ||
</p> | ||
<hr> | ||
|
||
# virtual_keyboard | ||
|
||
## Introduction | ||
A simple package for dispaying virtual keyboards on a devices like kiosks and ATMs. The library is written in Dart and has no native code dependancy. | ||
|
||
Virtual keyboard provides a core set of functionality to display onscreen virtual keyboards. Managing the events sould be done on the project level. | ||
|
||
## Reference | ||
|
||
### VirtualKeyboard | ||
Flutter widget to show virtual keyboards. | ||
```dart | ||
// Keyboard Type: Can be Numeric or Alphanumeric. | ||
VirtualKeyboardType type | ||
``` | ||
```dart | ||
// Callback for Key press event. Called with pressed `Key` object. | ||
Function onKeyPress; | ||
``` | ||
```dart | ||
// Virtual keyboard height. Default is 300. | ||
double height; | ||
``` | ||
```dart | ||
// Color for key texts and icons. | ||
Color textColor; | ||
``` | ||
```dart | ||
// Font size for keyboard keys. | ||
double fontSize;; | ||
``` | ||
|
||
### VirtualKeyboardType | ||
enum of Available Virtual Keyboard Types. | ||
```dart | ||
// Numeric only. | ||
VirtualKeyboardType.Numeric | ||
``` | ||
```dart | ||
// Alphanumeric: letters`[A-Z]` + numbers`[0-9]` + `@` + `.`. | ||
VirtualKeyboardType.Alphanumeric | ||
``` | ||
|
||
### VirtualKeyboardKey | ||
Virtual Keyboard key. | ||
```dart | ||
// The text of the key. | ||
String text | ||
``` | ||
```dart | ||
// The capitalized text of the key. | ||
String capsText; | ||
``` | ||
```dart | ||
// Action or String | ||
VirtualKeyboardKeyType keyType; | ||
``` | ||
```dart | ||
// Action of the key. | ||
VirtualKeyboardKeyAction action; | ||
``` | ||
### VirtualKeyboardKeyType | ||
Type for virtual keyboard key. | ||
|
||
```dart | ||
// Can be an action key - Return, Backspace, etc. | ||
VirtualKeyboardKeyType.Action | ||
``` | ||
```dart | ||
// Keys that have text values - letters, numbers, comma ... | ||
VirtualKeyboardKeyType.String | ||
``` | ||
|
||
### VirtualKeyboardKeyAction | ||
```dart | ||
/// Virtual keyboard actions. | ||
enum VirtualKeyboardKeyAction { Backspace, Return, Shift, Space } | ||
``` | ||
|
||
## Usage | ||
|
||
#### Show Alphanumeric keyboard with default view | ||
```dart | ||
// Wrap the keyboard with Container to set background color. | ||
Container( | ||
// Keyboard is transparent | ||
color: Colors.deepPurple, | ||
child: VirtualKeyboard( | ||
// Default height is 300 | ||
height: 350, | ||
// Default is black | ||
textColor: Colors.white, | ||
// Default 14 | ||
fontSize: 20, | ||
// [A-Z, 0-9] | ||
type: VirtualKeyboardType.Alphanumeric, | ||
// Callback for key press event | ||
onKeyPress: _onKeyPress), | ||
) | ||
``` | ||
|
||
#### Show Numeric keyboard with default view | ||
```dart | ||
Container( | ||
// Keyboard is transparent | ||
color: Colors.red, | ||
child: VirtualKeyboard( | ||
// [0-9] + . | ||
type: VirtualKeyboardType.Numeric, | ||
// Callback for key press event | ||
onKeyPress: (key) => print(key.text)), | ||
) | ||
``` | ||
|
||
#### Show Alphanumeric keyboard with customized keys | ||
|
||
```dart | ||
Container( | ||
color: Colors.deepPurple, | ||
child: VirtualKeyboard( | ||
height: keyboardHeight, | ||
textColor: Colors.white, | ||
fontSize: 20, | ||
builder: _builder, | ||
type: VirtualKeyboardType.Numeric, | ||
onKeyPress: _onKeyPress), | ||
) | ||
/// Builder for keyboard keys. | ||
Widget _builder(BuildContext context, VirtualKeyboardKey key) { | ||
Widget keyWidget; | ||
switch (key.keyType) { | ||
case VirtualKeyboardKeyType.String: | ||
// Draw String key. | ||
keyWidget = _keyboardDefaultKey(key); | ||
break; | ||
case VirtualKeyboardKeyType.Action: | ||
// Draw action key. | ||
keyWidget = _keyboardDefaultActionKey(key); | ||
break; | ||
} | ||
return keyWidget; | ||
} | ||
``` | ||
|
||
#### onKeyPressed event basic ussage example | ||
```dart | ||
// Just local variable. Use Text widget or similar to show in UI. | ||
String text; | ||
/// Fired when the virtual keyboard key is pressed. | ||
_onKeyPress(VirtualKeyboardKey key) { | ||
if (key.keyType == VirtualKeyboardKeyType.String) { | ||
text = text + (shiftEnabled ? key.capsText : key.text); | ||
} else if (key.keyType == VirtualKeyboardKeyType.Action) { | ||
switch (key.action) { | ||
case VirtualKeyboardKeyAction.Backspace: | ||
if (text.length == 0) return; | ||
text = text.substring(0, text.length - 1); | ||
break; | ||
case VirtualKeyboardKeyAction.Return: | ||
text = text + '\n'; | ||
break; | ||
case VirtualKeyboardKeyAction.Space: | ||
text = text + key.text; | ||
break; | ||
case VirtualKeyboardKeyAction.Shift: | ||
shiftEnabled = !shiftEnabled; | ||
break; | ||
default: | ||
} | ||
} | ||
// Update the screen | ||
setState(() {}); | ||
} | ||
``` | ||
|
||
- [Gurgen Hovhannisyan](https://github.com/gurgenDP) | ||
- [Digital Pomegranate](https://digitalpomegranate.com) | ||
- [LICENSE - MIT](https://github.com/gurgenDP/virtual_keyboard/blob/master/LICENSE) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
part of virtual_keyboard; | ||
|
||
|
||
|
||
/// Virtual Keyboard key | ||
class VirtualKeyboardKey { | ||
final String text; | ||
final String capsText; | ||
final VirtualKeyboardKeyType keyType; | ||
final VirtualKeyboardKeyAction action; | ||
|
||
VirtualKeyboardKey( | ||
{this.text, this.capsText, @required this.keyType, this.action}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
part of virtual_keyboard; | ||
|
||
/// Virtual keyboard actions. | ||
enum VirtualKeyboardKeyAction { Backspace, Return, Shift, Space } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
part of virtual_keyboard; | ||
|
||
/// Type for virtual keyboard key. | ||
/// | ||
/// `Action` - Can be action key - Return, Backspace, etc. | ||
/// | ||
/// `String` - Keys that have text value - `Letters`, `Numbers`, `@` `.` | ||
enum VirtualKeyboardKeyType { Action, String } |
Oops, something went wrong.