diff options
Diffstat (limited to 'rdtk/include')
-rw-r--r-- | rdtk/include/CMakeLists.txt | 10 | ||||
-rw-r--r-- | rdtk/include/rdtk/api.h | 46 | ||||
-rw-r--r-- | rdtk/include/rdtk/rdtk.h | 80 |
3 files changed, 136 insertions, 0 deletions
diff --git a/rdtk/include/CMakeLists.txt b/rdtk/include/CMakeLists.txt new file mode 100644 index 0000000..1ecad4e --- /dev/null +++ b/rdtk/include/CMakeLists.txt @@ -0,0 +1,10 @@ + +if (NOT RDTK_FORCE_STATIC_BUILD) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ + DESTINATION ${RDTK_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h") + + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ + DESTINATION ${RDTK_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h") +endif() diff --git a/rdtk/include/rdtk/api.h b/rdtk/include/rdtk/api.h new file mode 100644 index 0000000..b5cee54 --- /dev/null +++ b/rdtk/include/rdtk/api.h @@ -0,0 +1,46 @@ +/** + * RdTk: Remote Desktop Toolkit + * + * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef RDTK_API_H +#define RDTK_API_H + +#include <winpr/spec.h> + +#if defined _WIN32 || defined __CYGWIN__ +#ifdef RDTK_EXPORTS +#ifdef __GNUC__ +#define RDTK_EXPORT __attribute__((dllexport)) +#else +#define RDTK_EXPORT __declspec(dllexport) +#endif +#else +#ifdef __GNUC__ +#define RDTK_EXPORT __attribute__((dllimport)) +#else +#define RDTK_EXPORT __declspec(dllimport) +#endif +#endif +#else +#if __GNUC__ >= 4 +#define RDTK_EXPORT __attribute__((visibility("default"))) +#else +#define RDTK_EXPORT +#endif +#endif + +#endif /* RDTK_API_H */ diff --git a/rdtk/include/rdtk/rdtk.h b/rdtk/include/rdtk/rdtk.h new file mode 100644 index 0000000..8c4ae03 --- /dev/null +++ b/rdtk/include/rdtk/rdtk.h @@ -0,0 +1,80 @@ +/** + * RdTk: Remote Desktop Toolkit + * + * Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef RDTK_H +#define RDTK_H + +#include <stdint.h> +#include <rdtk/api.h> + +typedef struct rdtk_engine rdtkEngine; +typedef struct rdtk_font rdtkFont; +typedef struct rdtk_glyph rdtkGlyph; +typedef struct rdtk_surface rdtkSurface; +typedef struct rdtk_button rdtkButton; +typedef struct rdtk_label rdtkLabel; +typedef struct rdtk_text_field rdtkTextField; +typedef struct rdtk_nine_patch rdtkNinePatch; + +#ifdef __cplusplus +extern "C" +{ +#endif + + /* Engine */ + + RDTK_EXPORT rdtkEngine* rdtk_engine_new(void); + RDTK_EXPORT void rdtk_engine_free(rdtkEngine* engine); + + /* Surface */ + + RDTK_EXPORT int rdtk_surface_fill(rdtkSurface* surface, uint16_t x, uint16_t y, uint16_t width, + uint16_t height, uint32_t color); + + RDTK_EXPORT rdtkSurface* rdtk_surface_new(rdtkEngine* engine, uint8_t* data, uint16_t width, + uint16_t height, uint32_t scanline); + RDTK_EXPORT void rdtk_surface_free(rdtkSurface* surface); + + /* Font */ + + RDTK_EXPORT int rdtk_font_draw_text(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, + rdtkFont* font, const char* text); + + /* Button */ + + RDTK_EXPORT int rdtk_button_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, + uint16_t nWidth, uint16_t nHeight, rdtkButton* button, + const char* text); + + /* Label */ + + RDTK_EXPORT int rdtk_label_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, + uint16_t nWidth, uint16_t nHeight, rdtkLabel* label, + const char* text, uint16_t hAlign, uint16_t vAlign); + + /* TextField */ + + RDTK_EXPORT int rdtk_text_field_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, + uint16_t nWidth, uint16_t nHeight, + rdtkTextField* textField, const char* text); + +#ifdef __cplusplus +} +#endif + +#endif /* RDTK_H */ |