diff options
author | jan Iversen <jani@libreoffice.org> | 2017-02-28 19:27:11 +0100 |
---|---|---|
committer | jan iversen <jani@libreoffice.org> | 2017-03-19 18:59:09 +0000 |
commit | 6aa9d41a0d0c45346cfe84cf903057d812815c20 (patch) | |
tree | 5a4a79065850208cf4b906884e8207856afa75b1 /ios | |
parent | b5bef1f7d5edb68a7609c2d003955461bfa9c5aa (diff) |
ios LibreOfficeLight clientCommands added
Add connection between client commands and LOKit.
Change-Id: I2593b3c0b7a82612924bf63c3be85963f5a20d32
Reviewed-on: https://gerrit.libreoffice.org/35434
Reviewed-by: jan iversen <jani@libreoffice.org>
Tested-by: jan iversen <jani@libreoffice.org>
Diffstat (limited to 'ios')
4 files changed, 57 insertions, 46 deletions
diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj index 73e789d2311b..ab3e6af22da1 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj @@ -52,7 +52,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewPrintManager.swift; sourceTree = "<group>"; }; + 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewPrintManager.swift; path = LibreOfficeLight/ViewPrintManager.swift; sourceTree = SOURCE_ROOT; }; 397868D71E59A3EA007F9248 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; 397E08FA1E597BD8001374E0 /* LibreOfficeLight.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LibreOfficeLight.app; sourceTree = BUILT_PRODUCTS_DIR; }; 397E08FD1E597BD8001374E0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = LibreOfficeLight/AppDelegate.swift; sourceTree = SOURCE_ROOT; }; @@ -66,13 +66,13 @@ 397E091C1E597BD8001374E0 /* LibreOfficeLightUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LibreOfficeLightUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 397E09201E597BD8001374E0 /* LibreOfficeLightUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LibreOfficeLightUITests.swift; path = LibreOfficeLightUITests/LibreOfficeLightUITests.swift; sourceTree = SOURCE_ROOT; }; 397E09221E597BD8001374E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = LibreOfficeLightUITests/Info.plist; sourceTree = SOURCE_ROOT; }; - 3992D8571E5B761700BEA987 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; }; - 3992D8591E5B762A00BEA987 /* ViewDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewDocument.swift; sourceTree = "<group>"; }; - 3992D85B1E5B764A00BEA987 /* SideMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideMenu.swift; sourceTree = "<group>"; }; - 3992D85C1E5B764A00BEA987 /* ViewFileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewFileManager.swift; sourceTree = "<group>"; }; - 399648461E5B87DC00E73E83 /* ViewProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewProperties.swift; sourceTree = "<group>"; }; - 399648481E5C4E5500E73E83 /* LO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LO.swift; sourceTree = "<group>"; }; - 39A83A8D1E5F471C00D0C683 /* lokit-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; path = "lokit-Bridging-Header.h"; sourceTree = "<group>"; }; + 3992D8571E5B761700BEA987 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = LibreOfficeLight/ViewController.swift; sourceTree = SOURCE_ROOT; }; + 3992D8591E5B762A00BEA987 /* ViewDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewDocument.swift; path = LibreOfficeLight/ViewDocument.swift; sourceTree = SOURCE_ROOT; }; + 3992D85B1E5B764A00BEA987 /* SideMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SideMenu.swift; path = LibreOfficeLight/SideMenu.swift; sourceTree = SOURCE_ROOT; }; + 3992D85C1E5B764A00BEA987 /* ViewFileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewFileManager.swift; path = LibreOfficeLight/ViewFileManager.swift; sourceTree = SOURCE_ROOT; }; + 399648461E5B87DC00E73E83 /* ViewProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewProperties.swift; path = LibreOfficeLight/ViewProperties.swift; sourceTree = SOURCE_ROOT; }; + 399648481E5C4E5500E73E83 /* LO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LO.swift; path = LibreOfficeLight/LO.swift; sourceTree = SOURCE_ROOT; }; + 39A83A8D1E5F471C00D0C683 /* lokit-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = "lokit-Bridging-Header.h"; path = "LibreOfficeLight/lokit-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; 39A83A8E1E5F471D00D0C683 /* lokit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lokit.c; path = LibreOfficeLight/lokit.c; sourceTree = SOURCE_ROOT; }; 39B084E21E5F0A9600682A59 /* lo.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = lo.xcconfig; path = "../../../../ios-work/workdir/ios/generated/lo.xcconfig"; sourceTree = SOURCE_ROOT; }; 39B084E51E5F0BB400682A59 /* fundamentalrc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = fundamentalrc; path = "../../../../ios-work/workdir/ios/resources/fundamentalrc"; sourceTree = SOURCE_ROOT; }; @@ -395,7 +395,8 @@ 397868D71E59A3EA007F9248 /* en */, ); name = LaunchScreen.xib; - sourceTree = "<group>"; + path = LibreOfficeLight; + sourceTree = SOURCE_ROOT; }; 397E09011E597BD8001374E0 /* Main.storyboard */ = { isa = PBXVariantGroup; diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/LO.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/LO.swift index ed039fccd49f..91f344169afa 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/LO.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/LO.swift @@ -23,7 +23,7 @@ class LOkit func Initialize() { - + LOkit_ClientCommand() } func DeleteCurrentDocument() diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h b/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h index 862785f0ac50..c0f2e204bf83 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h @@ -8,4 +8,6 @@ // Bridge functions to LibreOfficeKit -int LOkit_Init(); +int LOkit_Init(); +int LOkit_ClientCommand(); + diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit.c b/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit.c index af77f40454d0..6be800567f26 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit.c +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/lokit.c @@ -117,7 +117,7 @@ extern "C" void lo_initialize(NSString *documentPath) // CLIENT COMMAND INTERFACE -static bool client_canceltiles(char *input, int argc, char *args[]) +static bool client_canceltiles(char *input, char *args[]) { // command: canceltiles // arguments: NONE @@ -130,7 +130,7 @@ static bool client_canceltiles(char *input, int argc, char *args[]) return true; } -static bool client_clientvisiblearea(char *input, int argc, char *args[]) +static bool client_clientvisiblearea(char *input, char *args[]) { // command: clientvisiblearea // arguments: x=<x> @@ -140,7 +140,7 @@ static bool client_clientvisiblearea(char *input, int argc, char *args[]) return true; } -static bool client_closedocument(char *input, int argc, char *args[]) +static bool client_closedocument(char *input, char *args[]) { // command: closedocument // arguments: None @@ -152,14 +152,14 @@ static bool client_closedocument(char *input, int argc, char *args[]) return true; } -static bool client_commandvalues(char *input, int argc, char *args[]) +static bool client_commandvalues(char *input, char *args[]) { // command: commandvalues // arguments: None return true; } -static bool client_downloadas(char *input, int argc, char *args[]) +static bool client_downloadas(char *input, char *args[]) { // command: downloadas // arguments: name=<fileName> @@ -176,7 +176,7 @@ static bool client_downloadas(char *input, int argc, char *args[]) return true; } -static bool client_getchildid(char *input, int argc, char *args[]) +static bool client_getchildid(char *input, char *args[]) { // command: getchildid // arguments: None @@ -186,7 +186,7 @@ static bool client_getchildid(char *input, int argc, char *args[]) return true; } -static bool client_gettextselection(char *input, int argc, char *args[]) +static bool client_gettextselection(char *input, char *args[]) { // command: gettextselection // arguments: None @@ -195,7 +195,7 @@ static bool client_gettextselection(char *input, int argc, char *args[]) return true; } -static bool client_insertfile(char *input, int argc, char *args[]) +static bool client_insertfile(char *input, char *args[]) { // command: insertfile // arguments: name=<name> @@ -206,7 +206,7 @@ static bool client_insertfile(char *input, int argc, char *args[]) return true; } -static bool client_key(char *input, int argc, char *args[]) +static bool client_key(char *input, char *args[]) { // command: key // arguments: type=<type> @@ -217,7 +217,7 @@ static bool client_key(char *input, int argc, char *args[]) return true; } -static bool client_load(char *input, int argc, char *args[]) +static bool client_load(char *input, char *args[]) { // command: load // arguments: [part=<partNumber>] @@ -233,7 +233,7 @@ static bool client_load(char *input, int argc, char *args[]) return true; } -static bool client_loolclient(char *input, int argc, char *args[]) +static bool client_loolclient(char *input, char *args[]) { // command: loolclient // arguments: <major.minor[-patch]> @@ -248,7 +248,7 @@ static bool client_loolclient(char *input, int argc, char *args[]) return true; } -static bool client_mouse(char *input, int argc, char *args[]) +static bool client_mouse(char *input, char *args[]) { // command: mouse // arguments: type=<type> @@ -260,7 +260,7 @@ static bool client_mouse(char *input, int argc, char *args[]) return true; } -static bool client_paste(char *input, int argc, char *args[]) +static bool client_paste(char *input, char *args[]) { // command: paste // arguments: mimetype=<mimeType> @@ -270,7 +270,7 @@ static bool client_paste(char *input, int argc, char *args[]) return true; } -static bool client_ping(char *input, int argc, char *args[]) +static bool client_ping(char *input, char *args[]) { // command: ping // argument: None @@ -279,7 +279,7 @@ static bool client_ping(char *input, int argc, char *args[]) return true; } -static bool client_renderfont(char *input, int argc, char *args[]) +static bool client_renderfont(char *input, char *args[]) { // command: renderfont // arguments: font=<font> @@ -291,7 +291,7 @@ static bool client_renderfont(char *input, int argc, char *args[]) return true; } -static bool client_requestloksession(char *input, int argc, char *args[]) +static bool client_requestloksession(char *input, char *args[]) { // command: requestloksession // arguments: None @@ -301,14 +301,14 @@ static bool client_requestloksession(char *input, int argc, char *args[]) return true; } -static bool client_resetselection(char *input, int argc, char *args[]) +static bool client_resetselection(char *input, char *args[]) { // command: resetselection // arguments: None return true; } -static bool client_saveas(char *input, int argc, char *args[]) +static bool client_saveas(char *input, char *args[]) { // command: saveas // arguments: url=<url> @@ -321,7 +321,7 @@ static bool client_saveas(char *input, int argc, char *args[]) return true; } -static bool client_selectgraphic(char *input, int argc, char *args[]) +static bool client_selectgraphic(char *input, char *args[]) { // command: selectgraphic // arguments: type=<type> @@ -332,7 +332,7 @@ static bool client_selectgraphic(char *input, int argc, char *args[]) return true; } -static bool client_selecttext(char *input, int argc, char *args[]) +static bool client_selecttext(char *input, char *args[]) { // command: selecttext // arguments: type=<type> @@ -343,7 +343,7 @@ static bool client_selecttext(char *input, int argc, char *args[]) return true; } -static bool client_setclientpart(char *input, int argc, char *args[]) +static bool client_setclientpart(char *input, char *args[]) { // command: setclientpart // arguments: part=<partNumber> @@ -352,21 +352,21 @@ static bool client_setclientpart(char *input, int argc, char *args[]) return true; } -static bool client_status(char *input, int argc, char *args[]) +static bool client_status(char *input, char *args[]) { // command: status // arguments: None return true; } -static bool client_styles(char *input, int argc, char *args[]) +static bool client_styles(char *input, char *args[]) { // command: styles // arguments: None return true; } -static bool client_tile(char *input, int argc, char *args[]) +static bool client_tile(char *input, char *args[]) { // command: tile // arguments: part=<partNumber> @@ -392,7 +392,7 @@ static bool client_tile(char *input, int argc, char *args[]) return true; } -static bool client_tilecombine(char *input, int argc, char *args[]) +static bool client_tilecombine(char *input, char *args[]) { // command: tilecombine // arguments: <parameters> @@ -404,7 +404,7 @@ static bool client_tilecombine(char *input, int argc, char *args[]) return true; } -static bool client_uno(char *input, int argc, char *args[]) +static bool client_uno(char *input, char *args[]) { // command: uno // arguments: <command> @@ -413,7 +413,7 @@ static bool client_uno(char *input, int argc, char *args[]) return true; } -static bool client_useractive(char *input, int argc, char *args[]) +static bool client_useractive(char *input, char *args[]) { // command: useractive // arguments: None @@ -425,7 +425,7 @@ static bool client_useractive(char *input, int argc, char *args[]) return true; } -static bool client_userinactive(char *input, int argc, char *args[]) +static bool client_userinactive(char *input, char *args[]) { // command: userinactive // arguments: None @@ -438,7 +438,7 @@ static bool client_userinactive(char *input, int argc, char *args[]) -typedef struct {const char *command; bool (*funcCmd)(char *, int, char *[]);} CLIENTCOMMAND; +typedef struct {const char *command; bool (*funcCmd)(char *, char *[]);} CLIENTCOMMAND; static CLIENTCOMMAND clientcommands[] = {{"canceltiles", client_canceltiles}, {"clientvisiblearea", client_clientvisiblearea}, {"closedocument", client_closedocument}, @@ -473,19 +473,27 @@ static CLIENTCOMMAND clientcommands[] = {{"canceltiles", client_canceltile -bool ClientCommand(char *input) +int LOkit_ClientCommand() { - CLIENTCOMMAND *cmd = clientcommands; + char *args[10]; + char *sep = " "; + char *cmd, *token; + char *input = "unknown command jan var her"; + int j = 0; // Split input into cmd + args + token = cmd = strtok(input, sep); + while (token && j < 10 && token - input < 2048) + args[j++] = token = strtok(token, sep); // Locate correct command - for (; cmd->command; ++cmd) - if (!strcmp(cmd->command,"mycommand")) - return cmd->funcCmd(input, 0, NULL); + CLIENTCOMMAND *client_cmd = clientcommands; + for (; client_cmd->command; ++cmd) + if (!strcmp(client_cmd->command,"mycommand")) + return client_cmd->funcCmd(input, NULL); // Call/Return from command - return false; + return 0; } |