Skip to content

Instantly share code, notes, and snippets.

@bistole
bistole / CMakeLists.txt
Created January 30, 2021 22:33
add libBackend.lib to link lib
set(BACKEND_DIR "${CMAKE_CURRENT_SOURCE_DIR}/backend")
set(BACKEND_LIB "${BACKEND_DIR}/libBackend.lib")
target_link_libraries(${BINARY_NAME} PRIVATE "${BACKEND_LIB}")
@bistole
bistole / commands.cpp
Created January 29, 2021 22:54
send response for method channel
struct IPS {
std::map<std::string, std::string> ips;
};
struct_mapping::reg(&IPS::ips, "ips");
IPS ipsStruct;
// const char* ips = "{\"en0\":\"127.0.0.1\"}";
const char* ips = Backend_GetAvailableIPs();
std::string ipstr = std::string("{\"ips\":") + ips + std::string("}");
@bistole
bistole / commands.cpp
Last active January 29, 2021 22:45
get arguments as string
const EncodableValue* value = call.arguments();
if (std::holds_alternative<std::string>(*value)) {
std::string ip = std::get<std::string>(*value);
const char* ipchar = ip.c_str();
char* ipcharDump = _strdup(ipchar);
printf("CMD_SET_CURRENT_IP: %s\n", ipcharDump);
Backend_SetCurrentIP(ipcharDump);
free(ipcharDump);
}
@bistole
bistole / commands.cpp
Last active January 29, 2021 20:27
register binary messenger
using namespace flutter;
void Commands::registerMessenger(BinaryMessenger* binary_messenger)
{
std::string channel_name(PACKAGE_NAME);
channel_name += COMMANDS;
const StandardMethodCodec& codec = StandardMethodCodec::GetInstance();
method_channel_ = new MethodChannel<EncodableValue>(binary_messenger, channel_name, &codec);
@bistole
bistole / Commands.swift
Created December 11, 2020 17:57
receive event from flutter
class Commands : NSObject {
let COMMANDS = "/COMMANDS";
let CMD_OPEN_DIALOG = "CMD:OPEN_DIALOG";
weak var binaryMessager : FlutterBinaryMessenger?
var methodChannel : FlutterMethodChannel?
func methodInvoked(call: FlutterMethodCall, result: @escaping FlutterResult) -> Void {
NSLog(call.method);
switch(call.method) {
@bistole
bistole / MenuEvents.swift
Created December 11, 2020 17:49
send message to flutter
import Foundation
import FlutterMacOS
class MenuEvents : NSObject {
...
weak var binaryMessager : FlutterBinaryMessenger?
var methodChannel : FlutterMethodChannel?
func register(withBinaryMessager bm: FlutterBinaryMessenger) {
@bistole
bistole / MainFlutterWindow.swift
Created December 11, 2020 17:45
create two object handling events
import Cocoa
import FlutterMacOS
class MainFlutterWindow: NSWindow {
@IBOutlet weak var menuEvent: MenuEvents!
@IBOutlet weak var commands: Commands!
override func awakeFromNib() {
....
@bistole
bistole / create_task.dart
Created December 11, 2020 17:14
Add button
Expanded(
child: TextButton(
onPressed: () {
importPhoto();
},
child: Text('ADD PHOTO'),
),
),
@bistole
bistole / commands.dart
Last active December 11, 2020 17:11
send method to native
import 'package:flutter/services.dart';
import 'package:package_info/package_info.dart';
const COMMANDS = '/COMMANDS';
const CMD_OPEN_DIALOG = 'CMD:OPEN_DIALOG';
MethodChannel _methodCommand;
Future<MethodChannel> _getCommandsChannel() async {
@bistole
bistole / menu_events.dart
Last active December 11, 2020 17:09
receive menu events
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:package_info/package_info.dart';
import 'package:storyboard/net/command.dart';
const MENU_EVENTS = "/MENU_EVENTS";
const MENU_IMPORT_PHOTO = "MENU_EVENTS:IMPORT_PHOTO";
const MENU_TIMER = "TIMER";