Skeleton for the flowcanvas plain C wrapper

This commit is contained in:
Nedko Arnaudov 2009-07-29 22:00:37 +03:00
parent 5e94e9dccc
commit ce04e93235
4 changed files with 303 additions and 0 deletions

140
gui/canvas.c Normal file
View File

@ -0,0 +1,140 @@
/* -*- Mode: C ; c-basic-offset: 2 -*- */
/*
* LADI Session Handler (ladish)
*
* Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>
*
**************************************************************************
* This file contains implements the canvas functionality through flowcanvas
**************************************************************************
*
* LADI Session Handler is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LADI Session Handler is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LADI Session Handler. If not, see <http://www.gnu.org/licenses/>
* or write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "canvas.h"
bool
canvas_create(
int width,
int height,
canvas_handle * canvas_handle_ptr)
{
return false;
}
bool
canvas_destroy(
canvas_handle canvas)
{
return false;
}
void
canvas_clear(
canvas_handle canvas)
{
}
void
canvas_set_zoom(
canvas_handle canvas,
double pix_per_unit)
{
}
void
canvas_arrange(
canvas_handle canvas)
{
}
bool
canvas_create_module(
canvas_handle canvas,
const char * name,
double x,
double y,
bool show_title,
bool show_port_labels,
canvas_module_handle * module_handle_ptr)
{
return false;
}
bool
canvas_destroy_module(
canvas_handle canvas,
canvas_module_handle module)
{
return false;
}
bool
canvas_create_port(
canvas_handle canvas,
canvas_module_handle module,
const char * name,
bool is_input,
int color)
{
return false;
}
bool
canvas_destroy_port(
canvas_handle canvas,
canvas_port_handle port)
{
return false;
}
bool
canvas_add_connection(
canvas_handle canvas,
canvas_port_handle port1,
canvas_port_handle port2,
uint32_t color)
{
return false;
}
bool
canvas_remove_connection(
canvas_handle canvas,
canvas_port_handle port1,
canvas_port_handle port2)
{
return false;
}
bool
canvas_enum_modules(
canvas_handle canvas,
void * callback_context,
bool (* callback)(void * context, canvas_module_handle module))
{
return false;
}
bool
canvas_enum_module_ports(
canvas_handle canvas,
canvas_module_handle module,
void * callback_context,
bool (* callback)(void * context, canvas_port_handle port))
{
return false;
}

127
gui/canvas.h Normal file
View File

@ -0,0 +1,127 @@
/* -*- Mode: C ; c-basic-offset: 2 -*- */
/*
* LADI Session Handler (ladish)
*
* Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>
*
**************************************************************************
* This file contains the interface to the canvas functionality
**************************************************************************
*
* LADI Session Handler is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LADI Session Handler is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LADI Session Handler. If not, see <http://www.gnu.org/licenses/>
* or write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef CANVAS_H__BE110B39_CB54_47C2_A5B2_FFB3BA7CDA6D__INCLUDED
#define CANVAS_H__BE110B39_CB54_47C2_A5B2_FFB3BA7CDA6D__INCLUDED
#include "common.h"
typedef struct canvas_tag { int unused; } * canvas_handle;
typedef struct canvas_module_tag { int unused; } * canvas_module_handle;
typedef struct canvas_port_tag { int unused; } * canvas_port_handle;
#ifdef __cplusplus
extern "C" {
#endif
#if 0
} /* Adjust editor indent */
#endif
bool
canvas_create(
int width,
int height,
canvas_handle * canvas_handle_ptr);
bool
canvas_destroy(
canvas_handle canvas);
void
canvas_clear(
canvas_handle canvas);
void
canvas_set_zoom(
canvas_handle canvas,
double pix_per_unit);
void
canvas_arrange(
canvas_handle canvas);
bool
canvas_create_module(
canvas_handle canvas,
const char * name,
double x,
double y,
bool show_title,
bool show_port_labels,
canvas_module_handle * module_handle_ptr);
bool
canvas_destroy_module(
canvas_handle canvas,
canvas_module_handle module);
bool
canvas_create_port(
canvas_handle canvas,
canvas_module_handle module,
const char * name,
bool is_input,
int color);
bool
canvas_destroy_port(
canvas_handle canvas,
canvas_port_handle port);
bool
canvas_add_connection(
canvas_handle canvas,
canvas_port_handle port1,
canvas_port_handle port2,
uint32_t color);
bool
canvas_remove_connection(
canvas_handle canvas,
canvas_port_handle port1,
canvas_port_handle port2);
bool
canvas_enum_modules(
canvas_handle canvas,
void * callback_context,
bool (* callback)(void * context, canvas_module_handle module));
bool
canvas_enum_module_ports(
canvas_handle canvas,
canvas_module_handle module,
void * callback_context,
bool (* callback)(void * context, canvas_port_handle port));
#if 0
{ /* Adjust editor indent */
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* #ifndef CANVAS_H__BE110B39_CB54_47C2_A5B2_FFB3BA7CDA6D__INCLUDED */

35
gui/common.h Normal file
View File

@ -0,0 +1,35 @@
/* -*- Mode: C ; c-basic-offset: 2 -*- */
/*
* LADI Session Handler (ladish)
*
* Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>
*
**************************************************************************
* This file contains stuff that is needed almost everywhere in the gladish
**************************************************************************
*
* LADI Session Handler is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LADI Session Handler is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LADI Session Handler. If not, see <http://www.gnu.org/licenses/>
* or write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef COMMON_H__15E63B7A_8350_4ABD_B04C_592158354949__INCLUDED
#define COMMON_H__15E63B7A_8350_4ABD_B04C_592158354949__INCLUDED
#include "config.h" /* configure stage result */
#include <stdbool.h> /* C99 bool */
#include <stdint.h> /* fixed bit size ints */
#endif /* #ifndef COMMON_H__15E63B7A_8350_4ABD_B04C_592158354949__INCLUDED */

View File

@ -266,6 +266,7 @@ def build(bld):
'session.cpp',
'a2j_proxy.cpp',
'dbus_helpers.c',
'canvas.c',
]:
gladish.source.append(os.path.join("gui", source))