PROJECT(libscl-ui CXX)
SET(SRCS
- sclres/sclres_manager.cpp
- sclres/sclres.cpp
- xmlresource/main_entry_parser.cpp
- xmlresource/input_mode_configure_parser.cpp
- xmlresource/layout_parser.cpp
- xmlresource/layout_parser_helper.cpp
- xmlresource/modifier_decoration_parser.cpp
- xmlresource/label_properties_parser.cpp
- xmlresource/default_configure_parser.cpp
- xmlresource/autopopup_configure_parser.cpp
- xmlresource/magnifier_configure_parser.cpp
- xmlresource/nine_patch_file_list_parser.cpp
- xmlresource/xmlresource.cpp
- xmlresource/xml_parser_utils.cpp
- binary_xmlresource/string_bin_parser.cpp
- binary_xmlresource/metadata_bin_parser.cpp
- binary_xmlresource/input_mode_configure_bin_parser.cpp
- binary_xmlresource/layout_bin_parser.cpp
- binary_xmlresource/key_coordinate_frame_bin_parser.cpp
- binary_xmlresource/modifier_decoration_bin_parser.cpp
- binary_xmlresource/label_properties_bin_parser.cpp
- binary_xmlresource/default_configure_bin_parser.cpp
- binary_xmlresource/autopopup_configure_bin_parser.cpp
- binary_xmlresource/magnifier_configure_bin_parser.cpp
- binary_xmlresource/nine_patch_file_list_bin_parser.cpp
- binary_xmlresource/binary_xmlresource.cpp
- binary_xmlresource/file_storage.cpp
+ scl/sclres_manager.cpp
+ scl/sclres.cpp
+ scl/main_entry_parser.cpp
+ scl/input_mode_configure_parser.cpp
+ scl/layout_parser.cpp
+ scl/layout_parser_helper.cpp
+ scl/modifier_decoration_parser.cpp
+ scl/label_properties_parser.cpp
+ scl/default_configure_parser.cpp
+ scl/autopopup_configure_parser.cpp
+ scl/magnifier_configure_parser.cpp
+ scl/nine_patch_file_list_parser.cpp
+ scl/xmlresource.cpp
+ scl/xml_parser_utils.cpp
+ scl/string_bin_parser.cpp
+ scl/metadata_bin_parser.cpp
+ scl/input_mode_configure_bin_parser.cpp
+ scl/layout_bin_parser.cpp
+ scl/key_coordinate_frame_bin_parser.cpp
+ scl/modifier_decoration_bin_parser.cpp
+ scl/label_properties_bin_parser.cpp
+ scl/default_configure_bin_parser.cpp
+ scl/autopopup_configure_bin_parser.cpp
+ scl/magnifier_configure_bin_parser.cpp
+ scl/nine_patch_file_list_bin_parser.cpp
+ scl/binary_xmlresource.cpp
+ scl/file_storage.cpp
scl/sclerroradjustment.cpp
- scl/utils/win32/sclutils-win32.cpp
- scl/utils/linux/sclutils-linux.cpp
+ scl/sclutils-linux.cpp
scl/scldebug.cpp
scl/sclutils.cpp
scl/sclcontroller.cpp
scl/sclgwes.cpp
scl/sclevents.cpp
- scl/gwes/win32/sclgraphics-win32.cpp
- scl/gwes/efl/sclwindows-efl.cpp
- scl/gwes/efl/sclgraphics-efl.cpp
- scl/gwes/efl/sclanimator-efl.cpp
- scl/gwes/efl/sclevents-efl.cpp
- scl/gwes/win32/sclevents-win32.cpp
+ scl/sclwindows-efl.cpp
+ scl/sclgraphics-efl.cpp
+ scl/sclanimator-efl.cpp
+ scl/sclevents-efl.cpp
scl/sclfeedback.cpp
scl/scluibuilder.cpp
scl/scluiimpl.cpp
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclui.h" DESTINATION include/libscl-ui)
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclconfig.h" DESTINATION include/libscl-ui)
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclstructs.h" DESTINATION include/libscl-ui)
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/scleventcallback.h" DESTINATION include/libscl-ui)
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclutils.h" DESTINATION include/libscl-ui)
-INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclfeedback.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/sclui.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/sclconfig.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/sclstructs.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/scleventcallback.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/sclutils.h" DESTINATION include/libscl-ui)
+INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/sclfeedback.h" DESTINATION include/libscl-ui)
CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIBDIR}/pkgconfig)
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclevents-gtk.h"
-#include "scldebug.h"
-#include "sclcontroller.h"
-#include "sclgraphics.h"
-#include "scluibuilder.h"
-
-using namespace scl;
-
-sclboolean mouse_pressed = FALSE; /* Checks whether mouse is pressed or not */
-sclboolean skip_mouse_events_until_pressed = FALSE; /*Explicitly filter out any mouse events until mouse press occurs */
-
-#define MIN_XY_DIFF 14
-static sclint latest_pos_x = 0;
-static sclint latest_pos_y = 0;
-
-/**
- * Constructor
- */
-CSCLEventsImplGtk::CSCLEventsImplGtk()
-{
- SCL_DEBUG();
- /* Initializes all window resources */
-}
-
-/**
- * De-constructor
- */
-CSCLEventsImplGtk::~CSCLEventsImplGtk()
-{
- SCL_DEBUG();
-}
-
-/*
-static void
-get_time(char *func)
-{
- char buffer[30];
- struct timeval tv;
- time_t curtime;
-
- gettimeofday(&tv, NULL);
- curtime=tv.tv_sec;
-
- strftime(buffer, 30, "%m-%d-%Y %T.", localtime(&curtime));
- g_print("[%s]%s%ld\n",func, buffer, tv.tv_usec);
-
-}
-*/
-
-/* We have to remember the previous position of magnifier window, since it gets changed when mouse press occurs */
-sclint magpressposx = 0;
-sclint magpressposy = 0;
-/**
-* Generates a mouse press event to CSCLController class
-*/
-bool
-mouse_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
-{
- SCL_DEBUG();
- /* pre-condition */
- CSCLController *controller;
- sclboolean processed = FALSE;
-
- skip_mouse_events_until_pressed = FALSE;
-
- controller = CSCLController::get_instance();
-
- CSCLWindows *windows = CSCLWindows::get_instance();
- GtkWidget* magnifier = static_cast<GtkWidget*>(windows->get_magnifier_window());
- gdk_window_raise(magnifier->window);
- if (widget == windows->get_magnifier_window()) {
- SclWindowContext *magnifier_window_context = windows->get_window_context(widget, FALSE);
- if (magnifier_window_context) {
- magpressposx = magnifier_window_context->x;
- magpressposy = magnifier_window_context->y;
- }
- /* First convert the local coordinate to global coordinate */
- sclwindow window = SCLWINDOW_INVALID;
- sclbyte index = 0;
- SclWindowContext *context = NULL;
- context = windows->get_window_context(static_cast<sclwindow>(user_data), FALSE);
-
- sclint x = event->x;
- sclint y = event->y;
-
- x = context->x + x;
- y = context->y + y;
-
- do {
- window = windows->get_nth_window_in_Z_order_list(index);
- context = windows->get_window_context(window, FALSE);
-
- if (context) {
- if ((x >= context->x && x <= (context->x + context->width)) &&
- (y >= context->y && y <= (context->y + context->height))) {
- /* Now convert the global coordinate to appropriate local coordinate */
- x = x - context->x;
- y = y - context->y;
-
- if (controller) {
- controller->mouse_press(window, x, y);
- mouse_pressed = TRUE;
- processed = TRUE;
- }
- }
- }
-
- index++;
- } while (index < MAX_ZORDER_NUM && window != SCLWINDOW_INVALID);
- } else if (widget == windows->get_dim_window()) {
- controller->mouse_press(static_cast<sclwindow>(user_data), event->x, event->y);
- processed = TRUE;
- skip_mouse_events_until_pressed = TRUE;
- }
-
- controller = CSCLController::get_instance();
- if (controller && !mouse_pressed && !processed) {
- controller->mouse_press(static_cast<sclwindow>(user_data), event->x, event->y);
- mouse_pressed = TRUE;
- }
-
- latest_pos_x = event->x;
- latest_pos_x = event->y;
-
- /* post-condition */
- return TRUE;
-}
-
-/**
- * Generates a mouse release event to CSCLController class
- */
-bool
-mouse_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
-{
- SCL_DEBUG();
- /* pre-condition */
- CSCLController *controller;
- CSCLWindows *windows;
-
- controller = CSCLController::get_instance();
- windows = CSCLWindows::get_instance();
-
- sclint x = event->x;
- sclint y = event->y;
-
- if (mouse_pressed) {
- sclboolean processed = FALSE;
- sclbyte index = 0;
- sclwindow window = SCLWINDOW_INVALID;
- SclWindowContext *context = NULL;
-
- /* First convert the local coordinate to global coordinate */
- context = windows->get_window_context(static_cast<sclwindow>(user_data), FALSE);
- if (widget == windows->get_magnifier_window()) {
- //context->x = magpressposx;
- //context->y = magpressposy;
-
- /* Sometimes the event struct contains incorrect mouse position, when magnifier window gets moved by clicking on it */
- GtkWidget* widget = static_cast<GtkWidget*>(windows->get_base_window());
- gdk_window_get_pointer(widget->window, &x, &y, NULL);
- context = windows->get_window_context(windows->get_base_window(), FALSE);
- }
-
- x = context->x + x;
- y = context->y + y;
-
- do {
- window = windows->get_nth_window_in_Z_order_list(index);
- context = windows->get_window_context(window, FALSE);
-
- if (context) {
- if ((x >= context->x && x <= (context->x + context->width)) &&
- (y >= context->y && y <= (context->y + context->height))) {
- /* Now convert the global coordinate to appropriate local coordinate */
- x = x - context->x;
- y = y - context->y;
-
- if (controller) {
- controller->mouse_release(window, x, y);
- processed = TRUE;
- }
- }
- }
-
- index++;
- } while (index < MAX_ZORDER_NUM && window != SCLWINDOW_INVALID);
-
- /* No window exists on that point */
- if (!processed) {
- if (controller) {
- controller->mouse_release(static_cast<sclwindow>(user_data), event->x, event->y);
- }
- }
- } else if (!skip_mouse_events_until_pressed) {
- scl_assert((FALSE && "Mouse released but mouse_pressed is FALSE"));
- if (controller) {
- controller->mouse_release(static_cast<sclwindow>(user_data), event->x, event->y);
- }
- }
-
- mouse_pressed = FALSE;
- /* post-condition */
- return TRUE;
-}
-
-/**
- * Generates a update window event to CSCLController class
- */
-bool
-update_window(GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
-{
- SCL_DEBUG();
- /* pre-condition */
- CSCLGwes* gwes = CSCLGwes::get_instance();
- CSCLUIBuilder *builder = CSCLUIBuilder::get_instance();
-
- if (gwes && builder) {
- sclwindow window = static_cast<sclwindow>(widget);
-
-#if 0
- /* For making the transparent window */
- cairo_t *cr;
- cr = gdk_cairo_create(widget->window);
- /* Make it transparent */
- cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
- gdk_cairo_region(cr, event->region);
- cairo_fill_preserve(cr);
- /* Make it half-transparent */
- if (gwes->mWnd->get_base_window() == window) {
- cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.9);
- } else {
- cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.0);
- }
- cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
- cairo_fill(cr);
- cairo_destroy(cr);
-#endif
-
- return builder->show_layout(window);
- }
-
- /* post-condition */
- return FALSE;
-}
-
-
-/**
- * Generates a mouse move event to CSCLController class
- */
-bool
-mouse_move(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
-{
- SCL_DEBUG();
- /* pre-condition */
- CSCLController *controller;
- CSCLWindows *windows;
- CSCLUtils *utils;
-
- controller = CSCLController::get_instance();
- windows = CSCLWindows::get_instance();
- utils = CSCLUtils::get_instance();
-
- sclint x = event->x;
- sclint y = event->y;
-
- if (abs(latest_pos_x -x) < utils->get_scale_x(MIN_XY_DIFF) && abs(latest_pos_x -y) < utils->get_scale_x(MIN_XY_DIFF)) {
- return FALSE;
- } else {
- latest_pos_x = x;
- latest_pos_x = y;
- }
-
- if (mouse_pressed) {
- sclbyte index = 0;
- sclwindow window = SCLWINDOW_INVALID;
- SclWindowContext *context = NULL;
-
- /* First convert the local coordinate to global coordinate */
- context = windows->get_window_context(static_cast<sclwindow>(user_data), FALSE);
- if (widget == windows->get_magnifier_window()) {
- //context->x = magpressposx;
- //context->y = magpressposy;
-
- GtkWidget* widget = static_cast<GtkWidget*>(windows->get_base_window());
- gdk_window_get_pointer(widget->window, &x, &y, NULL);
- context = windows->get_window_context(windows->get_base_window(), FALSE);
- }
- x = context->x + x;
- y = context->y + y;
-
- sclboolean bProcessed = FALSE;
-
- do {
- window = windows->get_nth_window_in_Z_order_list(index);
- context = windows->get_window_context(window, FALSE);
-
- if (context) {
- if ((x >= context->x && x <= (context->x + context->width)) &&
- (y >= context->y && y <= (context->y + context->height))) {
- /* Now convert the global coordinate to appropriate local coordinate */
- x = x - context->x;
- y = y - context->y;
-
- if (controller) {
- controller->mouse_move(window, x, y);
- //bProcessed = TRUE;
- }
- }
- }
-
- index++;
- } while (index < MAX_ZORDER_NUM && window != SCLWINDOW_INVALID && !bProcessed);
-
- } else if (!skip_mouse_events_until_pressed) {
- if (controller) {
- controller->mouse_move(static_cast<sclwindow>(user_data), event->x, event->y);
- }
- }
- /* post-condition */
- return TRUE;
-}
-
-/**
- * Regists a event callback func to given window.
- * In this function, it should call serveral event functions of CSCLController class whenever an event has occured
- * The below list shows what event function should be called.
- * - mouse_press (when the user presses mouse button)
- * - mouse_release (when the user releases mouse button)
- * - mouse_move (when the user drags mouse button)
- * - show_base_layout (when the expost event has occured)
- */
-void
-CSCLEventsImplGtk::connect_window_events(const sclwindow window, const sclint event)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(wnd != NULL);
-
- GtkWidget* widget = static_cast<GtkWidget*>(wnd);
-
- gtk_widget_add_events((GtkWidget*)widget, GDK_BUTTON_PRESS_MASK |
- GDK_BUTTON_RELEASE_MASK |
- GDK_BUTTON_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK);
-
- if (evt & SCL_EVENT_MOUSE) {
- g_signal_connect(G_OBJECT(widget), "button_press_event", G_CALLBACK(mouse_press), static_cast<gpointer>(wnd));
- g_signal_connect(G_OBJECT(widget), "button_release_event", G_CALLBACK(mouse_release), static_cast<gpointer>(wnd));
- g_signal_connect(G_OBJECT(widget), "motion_notify_event", G_CALLBACK(mouse_move), static_cast<gpointer>(wnd));
- }
-
- if (evt & SCL_EVENT_EXPOSE) {
- g_signal_connect(G_OBJECT(widget), "expose_event", G_CALLBACK(update_window), static_cast<gpointer>(wnd));
- }
-
- /* post-condition */
-}
-
-/**
- * Generates a timer event to CSCLController class
- */
-gboolean
-timer_event(gpointer data)
-{
- SCL_DEBUG();
- scl32 sendData = static_cast<scl32>(reinterpret_cast<uintptr_t>(data) & 0xffffffff);
- CSCLController *controller;
- controller = CSCLController::get_instance();
- if (controller) {
- return controller->timer_event(sendData);
- }
- return TRUE;
-}
-
-/**
- * Creates a timer
- * In this function, it should call timer_event of CSCLController class
- */
-void
-CSCLEventsImplGtk::create_timer(const scl16 id, const scl32 interval, scl16 value, sclboolean add_to_map)
-{
- SCL_DEBUG();
- sclint data = SCL_MAKELONG(id, value);
- gint timerId = gtk_timeout_add(static_cast<guint32>(interval), timer_event, (gpointer)data);
- if (add_to_map) {
- id_map[id] = timerId;
- }
-}
-
-/**
- * Destroys the given ID's timer
- */
-void
-CSCLEventsImplGtk::destroy_timer(const scl32 id)
-{
- SCL_DEBUG();
- for ( std::map<int, int>::iterator idx = id_map.begin(); idx != id_map.end(); ++idx ) {
- if ((*idx).first == id) {
- gtk_timeout_remove((*idx).second);
- id_map.erase((*idx).first);
- break;
- }
- }
-}
-
-/**
- * Destroys all of created timer
- */
-void
-CSCLEventsImplGtk::destroy_all_timer()
-{
- SCL_DEBUG();
- for ( std::map<int, int>::iterator idx = id_map.begin(); idx != id_map.end(); ++idx ) {
- gtk_timeout_remove((*idx).second);
- }
- id_map.clear();
-}
-
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclevents.h"
-#include <gtk/gtk.h>
-#include <map>
-
-
-#ifndef __SCL_EVENTS_GTK_H__
-#define __SCL_EVENTS_GTK_H__
-
-namespace scl
-{
-class CSCLEventsImplGtk : public CSCLEventsImpl
-{
-public :
- CSCLEventsImplGtk();
- ~CSCLEventsImplGtk();
-
- /* Implementation about interface functions */
- void connect_window_events(const sclwindow window, const sclint event);
- void create_timer(const scl16 id, const scl32 interval, scl16 value, sclboolean add_to_map);
- void destroy_timer(const scl32 id);
- void destroy_all_timer();
-
-private:
- std::map<int, int> id_map;
-};
-} /* End of scl namespace */
-#endif __SCL_EVENTS_GTK_H__
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include <cairo.h>
-
-#include "sclgraphics-cairo.h"
-#include "sclimageproxy.h"
-#include "scldebug.h"
-#include "sclwindows.h"
-
-
-using namespace scl;
-
-/**
- * Constructor
- */
-CSCLGraphicsImplCairo::CSCLGraphicsImplCairo()
-{
- SCL_DEBUG();
- /* Initializes all window resources */
-}
-
-/**
- * De-constructor
- */
-CSCLGraphicsImplCairo::~CSCLGraphicsImplCairo()
-{
- SCL_DEBUG();
-}
-
-
-/**
- * Draws the given text on cairo-surface
- */
-void
-CSCLGraphicsImplCairo::draw_text(sclwindow window, const scldrawctx draw_ctx, const SclFontInfo& fontinfo, const SclColor& color,
- const sclchar *str, sclint posx, sclint posy, sclint width, sclint height,
- SCLLabelAlignment align, sclbyte padding)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(str);
- scl_assert_return(draw_ctx);
-
- cairo_t* cr = static_cast<cairo_t*>(draw_ctx);
- cairo_identity_matrix(cr);
- cairo_set_source_rgba(cr, color.r / 256.0, color.g / 256.0, color.b / 256.0, 1.0);
- cairo_select_font_face(cr, fontinfo.fontname,
- fontinfo.isItalic ? CAIRO_FONT_SLANT_ITALIC : CAIRO_FONT_SLANT_NORMAL,
- fontinfo.isBold ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL);
-
- cairo_set_font_size(cr, fontinfo.fontsize);
-
- cairo_text_extents_t textExtents;
- cairo_text_extents(cr, str, &textExtents);
- cairo_text_extents_t barExtents;
- cairo_text_extents(cr, "|", &barExtents);
-
- if (align == LABEL_ALIGN_CENTER_TOP || align == LABEL_ALIGN_CENTER_MIDDLE || align == LABEL_ALIGN_CENTER_BOTTOM) {
- posx = posx + ((width - textExtents.width) / 2);
- } else if (align == LABEL_ALIGN_RIGHT_TOP || align == LABEL_ALIGN_RIGHT_MIDDLE || align == LABEL_ALIGN_RIGHT_BOTTOM) {
- posx = posx + (width - textExtents.width) - padding;
- } else {
- posx += padding;
- }
- if (align == LABEL_ALIGN_LEFT_MIDDLE || align == LABEL_ALIGN_CENTER_MIDDLE || align == LABEL_ALIGN_RIGHT_MIDDLE) {
- posy = posy + ((height - barExtents.height) / 2);
- } else if (align == LABEL_ALIGN_LEFT_BOTTOM || align == LABEL_ALIGN_CENTER_BOTTOM || align == LABEL_ALIGN_RIGHT_BOTTOM) {
- posy = posy + (height - barExtents.height) - padding;
- } else {
- posy += padding;
- }
-
- /* FIXME : A workaround for displaying '_' correctly on its position */
- /* MUST change the line below, with a full understanding on font drawing system */
- cairo_move_to(cr, posx - textExtents.x_bearing, posy - barExtents.y_bearing);
- cairo_show_text(cr, str);
-}
-
-/**
- * Draws the given image on cairo-surface
- */
-void
-CSCLGraphicsImplCairo::draw_image(sclwindow window, const scldrawctx draw_ctx, sclchar* imgPath, sclint destX, sclint destY,
- sclint destWidth, sclint destHeight, sclint srcX, sclint srcY, sclint srcWidth, sclint srcHeight)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(imgPath);
- scl_assert_return(draw_ctx);
-
- cairo_t* cr = static_cast<cairo_t*>(draw_ctx);
- CSCLWindows *windows = CSCLWindows::get_instance();
- CSCLImageProxy *proxy = CSCLImageProxy::get_instance();
-
- if (windows && proxy) {
- cairo_surface_t* imgSurface = static_cast<cairo_surface_t*>(proxy->get_image(imgPath));
-
- if (imgSurface && cr) {
- if (cairo_surface_status(imgSurface) == CAIRO_STATUS_SUCCESS) {
- cairo_identity_matrix(cr);
-
- cairo_translate(cr, destX - srcX, destY - srcY);
-
- if (destWidth > 0 && destHeight > 0 && srcWidth == -1) {
- sclint imagew = cairo_image_surface_get_width(imgSurface);
- sclint imageh = cairo_image_surface_get_height(imgSurface);
-
- double scaleX = (double)destWidth / imagew;
- double scaleY = (double)destHeight / imageh;
- cairo_scale(cr, scaleX, scaleY);
- }
-
- if (srcWidth > 0) {
- cairo_rectangle(cr, srcX, srcY, srcWidth, srcHeight);
- cairo_clip(cr);
- cairo_new_path(cr);
- }
-
- cairo_set_source_surface(cr, imgSurface, 0, 0);
- cairo_paint(cr);
- }
- }
- }
-}
-
-/**
- * Draws a rectangle on cairo-surface
- */
-void
-CSCLGraphicsImplCairo::draw_rectangle(sclwindow window, const scldrawctx draw_ctx, scldouble posx, scldouble posy,
- scldouble width, scldouble height, const scldouble lineWidth, const SclColor& lineColor, sclboolean fill, const SclColor& fillColor, scldouble radius, sclfloat alpha)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(draw_ctx);
-
- cairo_t* cr = static_cast<cairo_t*>(draw_ctx);
- cairo_identity_matrix(cr);
-
- /* a custom shape that could be wrapped in a function */
- //double radius = 0;//102.4; /* and an approximate curvature radius */
-
- double x1, y1;
-
- x1 = posx+width;
- y1 = posy+height;
- if (!width || !height)
- return;
- if (width/2 < radius) {
- if (height/2 < radius) {
- cairo_move_to(cr, posx, (posy + y1)/2);
- cairo_curve_to(cr, posx, posy, posx, posy, (posx + x1)/2, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, (posy + y1)/2);
- cairo_curve_to(cr, x1, y1, x1, y1, (x1 + posx)/2, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, (posy + y1)/2);
- } else {
- cairo_move_to(cr, posx, posy + radius);
- cairo_curve_to(cr, posx, posy, posx, posy, (posx + x1)/2, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, posy + radius);
- cairo_line_to(cr, x1 , y1 - radius);
- cairo_curve_to(cr, x1, y1, x1, y1, (x1 + posx)/2, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, y1- radius);
- }
- } else {
- if (height/2 < radius) {
- cairo_move_to(cr, posx, (posy + y1)/2);
- cairo_curve_to(cr, posx , posy, posx , posy, posx + radius, posy);
- cairo_line_to(cr, x1 - radius, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, (posy + y1)/2);
- cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to(cr, posx + radius, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, (posy + y1)/2);
- } else {
- cairo_move_to(cr, posx, posy + radius);
- cairo_curve_to(cr, posx , posy, posx , posy, posx + radius, posy);
- cairo_line_to(cr, x1 - radius, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, posy + radius);
- cairo_line_to(cr, x1 , y1 - radius);
- cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to(cr, posx + radius, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, y1- radius);
- }
- }
- cairo_close_path(cr);
-
- if (fill) {
- cairo_set_source_rgba(cr, fillColor.r / 256.0, fillColor.g / 256.0, fillColor.b / 256.0, alpha); //0.9
- cairo_fill_preserve(cr);
- }
-
- cairo_set_source_rgb(cr, lineColor.r / 256.0, lineColor.g / 256.0, lineColor.b / 256.0); // 1 . 0
- cairo_set_line_width(cr, lineWidth);//5.0
- cairo_stroke(cr);
-}
-
-
-#if 0
-/**
- * Creates a surface for cairo
- */
-static cairo_surface_t*
-load_cairo_surface(const gchar *filename)
-{
- SCL_DEBUG();
-
- GdkPixmap* pixmap = NULL;
- GdkPixbuf* pixbuf = NULL;
- GdkBitmap* mask = NULL;
- GdkScreen *screen;
- GdkColormap *rgba;
-
- rgba = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
-
- pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
- gdk_pixbuf_render_pixmap_and_mask_for_colormap(pixbuf, rgba, &pixmap, &mask, 128);
-
- return GDK_DRAWABLE_GET_CLASS (GDK_DRAWABLE (pixmap))->ref_cairo_surface (GDK_DRAWABLE (pixmap));
-}
-#else
-/**
-* Creates a surface for cairo
-*/
-static cairo_surface_t*
-load_cairo_surface(const gchar *filename)
-{
- SCL_DEBUG();
- cairo_surface_t *image = NULL;
- image = cairo_image_surface_create_from_png(filename);
- return image;
-}
-#endif
-
-
-/**
- * Loads the given image
- * This function will be used in the image proxy class
- */
-sclimage
-CSCLGraphicsImplCairo::load_image(const sclchar *imgPath)
-{
- SCL_DEBUG();
- return load_cairo_surface(imgPath);
-}
-
-/**
- * Destroys and removes the given image from cache
- */
-void
-CSCLGraphicsImplCairo::unload_image(sclimage imgData)
-{
- SCL_DEBUG();
- cairo_surface_destroy(static_cast<cairo_surface_t*>(imgData));
-}
-
-/**
- * Initializes the drawing context for double-buffering.
- * This func should be called before using a drawing primitive at first.
- */
-scldrawctx
-CSCLGraphicsImplCairo::begin_paint(const sclwindow window, const sclboolean forcedraw /* = FALSE */)
-{
- SCL_DEBUG();
- /* pre-condition */
- cairo_t *cr = NULL;
- /* Cairo contexts created in a GTK+ expose event handler cannot
- be cached and reused between different expose events */
- GtkWidget* widget;
- widget = static_cast<GtkWidget*>(window);
- if (!GTK_WIDGET_REALIZED(widget)) {
- gtk_widget_realize(widget);
- }
- cr = gdk_cairo_create(widget->window);
- return static_cast<scldrawctx>(cr);
-}
-
-/**
- * Notices that drawing tasks have done.
- */
-void
-CSCLGraphicsImplCairo::end_paint(const sclwindow window, scldrawctx draw_ctx)
-{
- cairo_destroy(static_cast<cairo_t*>(draw_ctx));
-}
-
-sclfont
-CSCLGraphicsImplCairo::create_font(const SclFontInfo& info)
-{
- return NULL;
-}
-
-void
-CSCLGraphicsImplCairo::destroy_font(sclfont font)
-{
-}
-
-SclSize CSCLGraphicsImplCairo::get_image_size(sclchar* imgPath)
-{
- SCL_DEBUG();
- SclSize ret = { 0, 0 };
- CSCLImageProxy *proxy = CSCLImageProxy::get_instance();
- cairo_surface_t* imgSurface = static_cast<cairo_surface_t*>(proxy->get_image(imgPath));
- ret.width = cairo_image_surface_get_width(imgSurface);
- ret.height = cairo_image_surface_get_height(imgSurface);
- return ret;
-}
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclgraphics.h"
-#include <gtk/gtk.h>
-
-#ifndef __SCL_GRAPHICS_CAIRO_H__
-#define __SCL_GRAPHICS_CAIRO_H__
-
-namespace scl
-{
-class CSCLGraphicsImplCairo : public CSCLGraphicsImpl
-{
-public :
- CSCLGraphicsImplCairo();
- ~CSCLGraphicsImplCairo();
-
- void draw_image(sclwindow window, const scldrawctx draw_ctx, sclchar* image_path,
- sclint dest_x, sclint dest_y, sclint dest_width, sclint dest_height,
- sclint src_x, sclint src_y, sclint src_width, sclint src_height);
- void draw_text(sclwindow window, const scldrawctx draw_ctx, const SclFontInfo& font_info, const SclColor& color,
- const sclchar *str, sclint pos_x, sclint pos_y, sclint width, sclint height,
- SCLLabelAlignment align, sclbyte padding);
- sclimage load_image(const sclchar* image_path);
- void unload_image(sclimage image_data);
- scldrawctx begin_paint(const sclwindow window, const sclboolean force_draw = FALSE);
- void end_paint(const sclwindow window, scldrawctx draw_ctx);
- sclfont create_font(const SclFontInfo& info);
- void destroy_font(sclfont font);
- void draw_rectangle(sclwindow window, const scldrawctx draw_ctx, scldouble pos_x, scldouble pos_y,
- scldouble width, scldouble height, const scldouble line_width, const SclColor& line_color,
- sclboolean fill, const SclColor& fill_color, scldouble radius, sclfloat alpha);
- SclSize get_image_size(sclchar* image_path);
-private:
-};
-} /* End of scl namespace */
-#endif __SCL_GRAPHICS_CAIRO_H__
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclgraphics-gtk.h"
-#include "sclimageproxy.h"
-#include "sclfontproxy.h"
-#include "scldebug.h"
-#include "sclwindows.h"
-
-using namespace scl;
-
-/**
- * Constructor
- */
-CSCLGraphicsImplGtk::CSCLGraphicsImplGtk()
-{
- SCL_DEBUG();
- /* Initializes all window resources */
-}
-
-/**
- * De-constructor
- */
-CSCLGraphicsImplGtk::~CSCLGraphicsImplGtk()
-{
- SCL_DEBUG();
-}
-
-
-void
-CSCLGraphicsImplGtk::draw_image(sclwindow window, const scldrawctx draw_ctx,
- sclchar* image_path, SclImageCachedInfo *cachedinfo,
- sclint dest_x, sclint dest_y, sclint dest_width, sclint dest_height,
- sclint src_x, sclint src_y, sclint src_width, sclint src_height)
-{
- SCL_DEBUG();
- //printf("\n %d destX, %d destY,\n %d destWidth, %d destHeight, %d srcX, %d srcY,\n %d srcWidth, %d srcHeight\n", destX, destY, destWidth, destHeight, srcX, srcWidth, srcHeight);
- /* pre-condition */
- scl_assert_return(imgPath);
-
- CSCLWindows *windows = CSCLWindows::get_instance();
- CSCLImageProxy *proxy = CSCLImageProxy::get_instance();
-
- GdkPixbuf *pixbuf;
- GdkPixbuf *temp;
- GdkColormap *rgba;
- GdkBitmap* mask = NULL;
-
- if (windows && proxy) {
- GdkPixmap* imgdata = static_cast<GdkPixmap*>(proxy->get_image(imgPath));
- GtkWidget* widget = static_cast<GtkWidget*>(window);
-
-
- //gdk_gc_set_alpha( widget->style->fg_gc[GTK_STATE_NORMAL],TRUE);
- if (imgdata && widget) {
- gdk_draw_drawable(
- widget->window,
- widget->style->fg_gc[GTK_STATE_NORMAL],
- imgdata,
- srcX, srcY,
- destX, destY,
- destWidth, destHeight);
- }
- }
-}
-
-static GdkPixmap*
-load_pixmap(const gchar *filename)
-{
- SCL_DEBUG();
-
- GdkPixbuf *pixbuf = NULL;
- GdkPixbuf *temp = NULL;
- guchar *data = NULL;
- int width = 0;
- int height = 0;
- int stride = 0;
- int i = 0;
-
- GdkPixmap *pixmap = NULL;
- GdkColormap *rgba;
- GdkBitmap* mask = NULL;
- if (g_file_test(filename, G_FILE_TEST_EXISTS)) {
- pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
- } else {
- return NULL;
- }
-
- if (!gdk_pixbuf_get_has_alpha(pixbuf)) {
- temp = pixbuf;
- pixbuf = gdk_pixbuf_add_alpha(temp, FALSE, 0, 0, 0);
- if (temp)
- g_object_unref((temp));
- }
-
- width = gdk_pixbuf_get_width(pixbuf);
- height = gdk_pixbuf_get_height(pixbuf);
- pixmap = gdk_pixmap_new(NULL, width, height, 32);
- gdk_draw_pixbuf(pixmap,
- NULL,
- pixbuf,
- 0,
- 0,
- 0,
- 0,
- width,
- height,
- GDK_RGB_DITHER_NONE,
- 0,
- 0);
- g_object_unref(pixbuf);
- return pixmap;
-}
-
-sclimage
-CSCLGraphicsImplGtk::load_image(const sclchar* image_path)
-{
- SCL_DEBUG();
- GdkPixmap* imgData = NULL;
-
- imgData = load_pixmap(imgPath);
-
- return imgData;
-}
-
-void
-CSCLGraphicsImplGtk::unload_image(sclimage image_data)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(imgData);
-
- g_object_unref(static_cast<GdkPixmap*>(imgData));
-}
-
-/**
- * Initializes the drawing context for double-buffering.
- * This func should be called before using a drawing primitive at first.
- */
-scldrawctx
-CSCLGraphicsImplGtk::begin_paint(const sclwindow window, const sclboolean force_draw /* = FALSE */)
-{
- SCL_DEBUG();
- /* pre-condition */
- cairo_t *cr = NULL;
- /* Cairo contexts created in a GTK+ expose event handler cannot
- be cached and reused between different expose events */
- GtkWidget* widget;
- widget = static_cast<GtkWidget*>(window);
- if (!GTK_WIDGET_REALIZED(widget)) {
- gtk_widget_realize(widget);
- }
- cr = gdk_cairo_create(widget->window);
- return static_cast<scldrawctx>(cr);
-}
-
-/**
- * Notices that drawing tasks have done.
- */
-void
-CSCLGraphicsImplGtk::end_paint(const sclwindow window, scldrawctx draw_ctx)
-{
- cairo_destroy(static_cast<cairo_t*>(draw_ctx));
-}
-
-sclfont
-CSCLGraphicsImplGtk::create_font(const SclFontInfo& info)
-{
- return NULL;
-}
-
-void
-CSCLGraphicsImplGtk::destroy_font(sclfont font)
-{
-}
-
-/**
- * Draws the given text on cairo-surface
- */
-void
-CSCLGraphicsImplGtk::draw_text(sclwindow window, const scldrawctx draw_ctx, const SclFontInfo& font_info,
- const SclColor& color, const sclchar *str, SclTextCachedInfo *cachedinfo,
- sclint pos_x, sclint pos_y, sclint width, sclint height,
- SCLLabelAlignment align, sclbyte padding)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(str);
- scl_assert_return(draw_ctx);
-
- cairo_t* cr = static_cast<cairo_t*>(draw_ctx);
- cairo_identity_matrix(cr);
- cairo_set_source_rgba(cr, color.r / 256.0, color.g / 256.0, color.b / 256.0, 1.0);
- cairo_select_font_face(cr, fontinfo.fontname,
- fontinfo.isItalic ? CAIRO_FONT_SLANT_ITALIC : CAIRO_FONT_SLANT_NORMAL,
- fontinfo.isBold ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL);
-
- cairo_set_font_size(cr, fontinfo.fontsize);
-
- cairo_text_extents_t textExtents;
- cairo_text_extents(cr, str, &textExtents);
- cairo_text_extents_t barExtents;
- cairo_text_extents(cr, "|", &barExtents);
-
- if (textExtents.width > width) {
- int newSize = fontinfo.fontsize - (fontinfo.fontsize * (float)(textExtents.width - width)) / width - 1;
- //printf("%s , %ld %ld %ld %ld %d\n", str, (int)(textExtents.width), (int)(textExtents.x_bearing), (int)(textExtents.x_advance), (int)(width), fontinfo.fontsize);
- cairo_set_font_size(cr, newSize);
-
- cairo_text_extents(cr, str, &textExtents);
- cairo_text_extents(cr, "|", &barExtents);
- //printf("%s , %ld %ld %ld %ld %d\n", str, (int)(textExtents.width), (int)(textExtents.x_bearing), (int)(textExtents.x_advance), (int)(width), newSize);
- }
-
- if (align == LABEL_ALIGN_CENTER_TOP || align == LABEL_ALIGN_CENTER_MIDDLE || align == LABEL_ALIGN_CENTER_BOTTOM) {
- posx = posx + ((width - textExtents.width) / 2);
- } else if (align == LABEL_ALIGN_RIGHT_TOP || align == LABEL_ALIGN_RIGHT_MIDDLE || align == LABEL_ALIGN_RIGHT_BOTTOM) {
- posx = posx + (width - textExtents.width) - padding;
- } else {
- posx += padding;
- }
- if (align == LABEL_ALIGN_LEFT_MIDDLE || align == LABEL_ALIGN_CENTER_MIDDLE || align == LABEL_ALIGN_RIGHT_MIDDLE) {
- posy = posy + ((height - barExtents.height) / 2);
- } else if (align == LABEL_ALIGN_LEFT_BOTTOM || align == LABEL_ALIGN_CENTER_BOTTOM || align == LABEL_ALIGN_RIGHT_BOTTOM) {
- posy = posy + (height - barExtents.height) - padding;
- } else {
- posy += padding;
- }
-
- /* FIXME : A workaround for displaying '_' correctly on its position */
- /* MUST change the line below, with a full understanding on font drawing system */
- cairo_move_to(cr, posx - textExtents.x_bearing, posy - barExtents.y_bearing);
- cairo_show_text(cr, str);
-}
-
-/**
- * Draws a rectangle on cairo-surface
- */
-void
-CSCLGraphicsImplGtk::draw_rectangle(sclwindow window, const scldrawctx draw_ctx,
- scldouble pos_x, scldouble pos_y, scldouble width, scldouble height,
- const scldouble line_width, const SclColor& line_color, sclboolean fill,
- const SclColor& fill_color, scldouble radius, sclfloat alpha)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert_return(draw_ctx);
-
- cairo_t* cr = static_cast<cairo_t*>(draw_ctx);
- cairo_identity_matrix(cr);
-
- /* a custom shape that could be wrapped in a function */
- //double radius = 0;//102.4; /* and an approximate curvature radius */
-
- double x1, y1;
-
- x1 = posx+width;
- y1 = posy+height;
- if (!width || !height)
- return;
- if (width/2 < radius) {
- if (height/2 < radius) {
- cairo_move_to(cr, posx, (posy + y1)/2);
- cairo_curve_to(cr, posx, posy, posx, posy, (posx + x1)/2, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, (posy + y1)/2);
- cairo_curve_to(cr, x1, y1, x1, y1, (x1 + posx)/2, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, (posy + y1)/2);
- } else {
- cairo_move_to(cr, posx, posy + radius);
- cairo_curve_to(cr, posx, posy, posx, posy, (posx + x1)/2, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, posy + radius);
- cairo_line_to(cr, x1 , y1 - radius);
- cairo_curve_to(cr, x1, y1, x1, y1, (x1 + posx)/2, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, y1- radius);
- }
- } else {
- if (height/2 < radius) {
- cairo_move_to(cr, posx, (posy + y1)/2);
- cairo_curve_to(cr, posx , posy, posx , posy, posx + radius, posy);
- cairo_line_to(cr, x1 - radius, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, (posy + y1)/2);
- cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to(cr, posx + radius, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, (posy + y1)/2);
- } else {
- cairo_move_to(cr, posx, posy + radius);
- cairo_curve_to(cr, posx , posy, posx , posy, posx + radius, posy);
- cairo_line_to(cr, x1 - radius, posy);
- cairo_curve_to(cr, x1, posy, x1, posy, x1, posy + radius);
- cairo_line_to(cr, x1 , y1 - radius);
- cairo_curve_to(cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to(cr, posx + radius, y1);
- cairo_curve_to(cr, posx, y1, posx, y1, posx, y1- radius);
- }
- }
- cairo_close_path(cr);
-
- if (fill) {
- cairo_set_source_rgba(cr, fillColor.r / 256.0, fillColor.g / 256.0, fillColor.b / 256.0, alpha); //0.9
- cairo_fill_preserve(cr);
- }
-
- cairo_set_source_rgb(cr, lineColor.r / 256.0, lineColor.g / 256.0, lineColor.b / 256.0); // 1 . 0
- cairo_set_line_width(cr, lineWidth);//5.0
- cairo_stroke(cr);
-}
-
-SclSize
-CSCLGraphicsImplGtk::get_image_size(sclchar* image_path)
-{
- SCL_DEBUG();
- SclSize ret = { 0, 0 };
- GdkPixbuf *pixbuf = NULL;
- if (g_file_test(imgPath, G_FILE_TEST_EXISTS)) {
- pixbuf = gdk_pixbuf_new_from_file(imgPath, NULL);
- } else {
- return ret;
- }
-
- ret.width = gdk_pixbuf_get_width(pixbuf);
- ret.height = gdk_pixbuf_get_height(pixbuf);
- g_object_unref(pixbuf);
- return ret;
-}
-
-SclSize
-CSCLGraphicsImplGtk::get_text_size(const SclFontInfo & fontinfo, const sclchar *str)
-{
- SCL_DEBUG();
- SclSize ret = {0, 0};
-
- return ret;
-}
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclgraphics.h"
-#include <gtk/gtk.h>
-
-#ifndef __SCL_GRAPHICS_GTK_H__
-#define __SCL_GRAPHICS_GTK_H__
-
-namespace scl
-{
-class CSCLGraphicsImplGtk : public CSCLGraphicsImpl
-{
-public :
- CSCLGraphicsImplGtk();
- ~CSCLGraphicsImplGtk();
-
- void draw_image(sclwindow window, const scldrawctx draw_ctx, sclchar* image_path,
- SclImageCachedInfo *cachedinfo, sclint dest_x, sclint dest_y, sclint dest_width, sclint dest_height,
- sclint src_x, sclint src_y, sclint src_width, sclint src_height);
- sclimage load_image(const sclchar* image_path);
- void unload_image(sclimage image_data);
-
- sclfont create_font(const SclFontInfo& info);
- void destroy_font(sclfont font);
- void draw_text(sclwindow window, const scldrawctx draw_ctx, const SclFontInfo& font_info, const SclColor& color,
- const sclchar *str, SclTextCachedInfo *cachedinfo, sclint pos_x, sclint pos_y, sclint width, sclint height,
- SCLLabelAlignment align, sclbyte padding);
-
- void draw_rectangle(sclwindow window, const scldrawctx draw_ctx, scldouble pos_x, scldouble pos_y,
- scldouble width, scldouble height, const scldouble line_width, const SclColor& line_color,
- sclboolean fill, const SclColor& fill_color, scldouble radius, sclfloat alpha);
- scldrawctx begin_paint(const sclwindow window, const sclboolean force_draw = FALSE);
- void end_paint(const sclwindow window, scldrawctx draw_ctx);
- SclSize get_image_size(sclchar* image_path);
- SclSize get_text_size(const SclFontInfo &fontinfo, const sclchar *str);
-private:
-};
-} /* End of scl namespace */
-#endif __SCL_GRAPHICS_GTK_H__
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclwindows-gtk.h"
-#include "scldebug.h"
-#include "sclcontroller.h"
-#include "sclcontext.h"
-#include "sclresourcecache.h"
-
-using namespace scl;
-
-/**
- * Constructor
- */
-CSCLWindowsImplGtk::CSCLWindowsImplGtk()
-{
- SCL_DEBUG();
- /* Initializes all window resources */
-}
-
-/**
- * De-constructor
- */
-CSCLWindowsImplGtk::~CSCLWindowsImplGtk()
-{
- SCL_DEBUG();
-}
-
-/**
- * Make a transparent window
- */
-static void
-make_transparent_window(GtkWidget *window)
-{
- SCL_DEBUG();
- GdkScreen *screen;
- GdkColormap *colormap;
-
- screen = gtk_widget_get_screen(window);
- if (!screen) {
- g_warning("failed to get window's screen");
- return;
- }
-
- colormap = gdk_screen_get_rgba_colormap(screen);
- if (!colormap) {
- g_warning("failed to get RGBA colormap");
- return;
- }
-
- gtk_widget_set_colormap(window, colormap);
- gtk_widget_set_app_paintable(window, TRUE);
- gtk_widget_realize(window);
- //gdk_gc_set_alpha(window->style->bg_gc[GTK_STATE_NORMAL], 0);
- //gdk_window_set_alpha(window->window, 0);
-}
-
-
-/**
- * Create a content window and binds it into given parent window as a child
- */
-sclwindow
-CSCLWindowsImplGtk::create_base_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height)
-{
- SCL_DEBUG();
-
- GtkWidget* window = NULL;
-
- /* pre-condition */
- scl_assert(parent != NULL);
- scl_assert(window_context != NULL);
- scl_assert(window_context->etc_info == NULL);
-
- if (window_context->window == NULL) {
- window = (GtkWidget*)parent;
-
- if (GTK_WIDGET_TOPLEVEL(window)) {
- window = (GtkWidget*)parent;
- window_context->etc_info = NULL;
- window_context->window = window;
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
- make_transparent_window(window);
- } else {
- GtkWidget *drawarea = NULL;
- drawarea = gtk_drawing_area_new();
- gtk_widget_set_size_request(window, width, height);
- gtk_widget_set_size_request(drawarea, width, height);
- gtk_box_pack_start(GTK_BOX(window), drawarea, TRUE, TRUE, 0);
- gtk_widget_show(drawarea);
- gtk_widget_show(window);
- window_context->etc_info = static_cast<void*>(drawarea);
- window_context->window = drawarea;
- make_transparent_window(drawarea);
- }
- }
- /* post-condition */
- return window_context->window;
-}
-
-/**
- * Creates a window
- */
-sclwindow
-CSCLWindowsImplGtk::create_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert(parent);
- scl_assert(window_context);
- scl_assert(window_context->etc_info == NULL);
-
- GtkWidget* window = NULL;
-
- if (window_context->window == NULL) {
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_UTILITY);
-#ifdef NO_SOCKETPLUG
- //gtk_window_set_type_hint(GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_NOTIFICATION);
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
-#endif
- gtk_window_set_accept_focus(GTK_WINDOW(window), FALSE);
-#ifdef NO_SOCKETPLUG
- GtkWidget* toplevel = gtk_widget_get_toplevel((GtkWidget*)parent);
- gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(toplevel));
-#endif
- /* Sets a window relation between parent and popup */
- make_transparent_window(window);
- gtk_window_set_default_size(GTK_WINDOW(window), width, height);
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
-#ifndef NO_SOCKETPLUG
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
- gtk_widget_set_app_paintable(window, TRUE);
-#endif
- //gtk_effect_set_enable (GTK_WIDGET(window), FALSE);
- window_context->etc_info = NULL;
- window_context->window = window;
-
-
- /* Window rotation*/
- CSCLContext* context = CSCLContext::get_instance();
-
- if (context->get_display() == DISPLAY_LANDSCAPE) {
- set_window_rotation(window, 90);
- }
-
- //gtk_widget_realize(window);
- }
-
- return window;
-}
-
-/**
- * Creates the dim window
- */
-sclwindow
-CSCLWindowsImplGtk::create_dim_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height)
-{
- SCL_DEBUG();
- /* pre-condition */
- scl_assert(parent);
- scl_assert(window_context);
- scl_assert(window_context->etc_info == NULL);
- GtkWidget* window = NULL;
-
- if (window_context->window == NULL) {
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_UTILITY);
-#ifdef NO_SOCKETPLUG
- //gtk_window_set_type_hint(GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_NOTIFICATION);
-#endif
- gtk_widget_set_name(window, "dialog_dim_window");
-#ifdef NO_SOCKETPLUG
- gtk_window_set_transient_for(GTK_WINDOW(window), GTK_WINDOW(gtk_widget_get_toplevel((GtkWidget*)parent)));
-#else
- gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_POPUP_MENU);
- //gtk_window_set_transient_for(GTK_WINDOW(gtk_widget_get_toplevel((GtkWidget*)parent)), GTK_WINDOW(window));
-#endif
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
- gtk_window_set_accept_focus(GTK_WINDOW(window), FALSE);
- gtk_widget_set_size_request(window, width, height);
- gtk_window_set_opacity(GTK_WINDOW(window), 0.5);
- gtk_widget_realize(window);
- //gtk_effect_set_enable (GTK_WIDGET(window), FALSE);
- window_context->etc_info = NULL;
- window_context->window = window;
- }
-
- return window;
-}
-
-/**
- * Make a window relation between parent and child
- * Caution: Currently, If we use transient_for them the ISE will occure some crash. It needs to check X11
- */
-void
-CSCLWindowsImplGtk::set_parent(const sclwindow parent_window, const sclwindow window)
-{
- SCL_DEBUG();
- scl_assert_return(window);
- scl_assert_return(parentWindow);
-#ifdef NO_SOCKETPLUG
- GtkWidget* widget = static_cast<GtkWidget*>(parentWindow);
- GtkWidget* toplevel = gtk_widget_get_toplevel(widget);
-#else
- GtkWindow* gtkParentWindow = static_cast<GtkWindow*>(parentWindow);
-#endif
- GtkWindow* gtkWindow = static_cast<GtkWindow*>(window);
-#ifdef NO_SOCKETPLUG
- gtk_window_set_transient_for(gtkWindow, GTK_WINDOW(toplevel));
-#endif
-}
-
-/**
- * Destroys the given window
- */
-bool
-CSCLWindowsImplGtk::destroy_window(sclwindow window)
-{
- SCL_DEBUG();
- scl_assert_return_false(window);
- /* add codes for destroying window */
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- gtk_widget_destroy(widget);
- return TRUE;
-}
-
-/**
- * Shows the given window
- */
-void
-CSCLWindowsImplGtk::show_window(const sclwindow window, sclboolean queue)
-{
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- gtk_widget_show(widget);
-
- /*Forcing expose on the magnifier window*/
- //if (widget->window) {
- if (queue) {
- gtk_widget_queue_draw(widget);
- } else {
- gdk_window_invalidate_rect(widget->window, NULL, TRUE);
- gdk_window_process_updates(widget->window, TRUE);
- }
- //}
-
- /*we will use always on top style when the window is created */
- /*we cannot use keep_above, becase the other toplevel window cannot appear if we use it*/
- /* X team will fix it */
- CSCLWindows *windows = CSCLWindows::get_instance();
- if (windows->get_base_window() != window && windows->get_dim_window() != window) {
-#ifndef NO_SOCKETPLUG
- gdk_window_raise(widget->window);
-#endif
- //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE);
- } else if (windows->get_dim_window() == window) {
-#ifndef NO_SOCKETPLUG
- gdk_window_raise(widget->window);
-#endif
- } else if (windows->get_base_window() == window) {
-#ifndef NO_SOCKETPLUG
- gdk_window_raise(gtk_widget_get_toplevel(widget)->window);
-#endif
- }
-}
-
-/**
- * Hides the given window
- */
-void
-CSCLWindowsImplGtk::hide_window(const sclwindow window, sclboolean force)
-{
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- CSCLWindows *windows = CSCLWindows::get_instance();
- if (windows->get_magnifier_window() == window && force == FALSE) {
- /* Fix me : The below is a temporary code for magnifier speed enhancement */
-#ifdef NO_SOCKETPLUG
- gint root_x, root_y;
- gtk_window_get_position(GTK_WINDOW(widget), &root_x, &root_y);
- if (GTK_WIDGET_MAPPED(widget)) {
- /* Window rotation*/
- CSCLContext* context = CSCLContext::get_instance();
- if (context->get_display() == DISPLAY_LANDSCAPE) {
- gtk_window_move(GTK_WINDOW(widget), gdk_screen_get_height(gdk_screen_get_default()) - 1, gdk_screen_get_width(gdk_screen_get_default())-1);
- } else {
- gtk_window_move(GTK_WINDOW(widget), gdk_screen_get_width(gdk_screen_get_default()) - 1, gdk_screen_get_height(gdk_screen_get_default())-1);
- }
-#else
- if (GTK_WIDGET_VISIBLE(widget)) {
- gtk_window_move(GTK_WINDOW(widget), 0, gdk_screen_get_height(gdk_screen_get_default())+1);
-#endif
- }
- } else {
- if (GTK_WIDGET_VISIBLE(widget)) {
- gtk_widget_hide(widget);
- }
- }
-}
-
-/**
- * Moves the window to the given position
- */
-void
-CSCLWindowsImplGtk::move_window(const sclwindow window, scl16 x, scl16 y) {
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- gtk_window_move(GTK_WINDOW(widget), x, y);
-}
-
-/**
-* Resizes the window to the given metric
-*/
-void
-CSCLWindowsImplGtk::resize_window(const sclwindow window, scl16 width, scl16 height) {
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- if (GTK_IS_WINDOW(widget)) {
- //gtk_window_set_default_size(GTK_WINDOW(widget), width, height);
- gtk_widget_set_size_request(GTK_WIDGET(widget), width, height);
- }
-}
-
-/**
-* Resizes the window to the given metric
-*/
-void
-CSCLWindowsImplGtk::move_resize_window(const sclwindow window, scl16 x, scl16 y, scl16 width, scl16 height) {
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- gdk_window_move_resize(GDK_WINDOW(widget->window), x, y, width, height);
-}
-
-
-/**
-* Update the window to redraw given area
-*/
-void
-CSCLWindowsImplGtk::update_window(const sclwindow window, scl16 x, scl16 y, scl16 width, scl16 height) {
- SCL_DEBUG();
- scl_assert_return(window);
- GtkWidget* widget = static_cast<GtkWidget*>(window);
-
- if (!GTK_WIDGET_VISIBLE(widget)) gtk_widget_show(widget);
-
- if (x + y + width + height == 0) {
- gdk_window_invalidate_rect(widget->window, NULL, TRUE);
- } else {
- GdkRectangle rect = { x, y, width, height} ;
- gdk_window_invalidate_rect(widget->window, &rect, TRUE);
- }
-
- gdk_window_process_updates(widget->window, TRUE);
-
- /* It needs test
- gtk_widget_queue_draw(widget);
- gtk_widget_queue_draw_area(widget, x, y, width, height);
- gdk_window_invalidate_rect(widget->window, NULL, FALSE);
- GdkRectangle rect = { x, y, width, height} ;
- gdk_window_invalidate_rect(widget->window, &rect, FALSE);
- */
-}
-
-/**
- * Returns the position of x,y,width,height of the given window
- */
-sclboolean
-CSCLWindowsImplGtk::get_window_rect(const sclwindow window, SclRectangle *rect) {
- SCL_DEBUG();
- sclboolean ret = FALSE;
- GtkWidget* widget = static_cast<GtkWidget*>(window);
- if (rect && GTK_WIDGET_REALIZED(widget)) {
-#if 0
- /* FIXME : We need to get appropriate position of the base window somehow */
- // {
- /* Maybe this bunch of code would help
- XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
- GDK_WINDOW_XROOTWIN (window),
- 0, 0, &tx, &ty,
- &child);
- */
-#endif
- CSCLContext *context = CSCLContext::get_instance();
- CSCLWindows *windows = CSCLWindows::get_instance();
- if (context->get_display() == DISPLAY_LANDSCAPE) {
- gdk_window_get_root_origin(GDK_WINDOW(gtk_widget_get_toplevel(widget)->window), &(rect->x), &(rect->y));
- if (window == windows->get_base_window()) {
- CSCLUtils *utils = CSCLUtils::get_instance();
- CSCLResourceCache *cache = CSCLResourceCache::get_instance();
-
- sclint scnWidth, scnHeight;
- utils->get_screen_resolution(&scnWidth, &scnHeight);
- rect->y = scnWidth - cache->get_cur_layout(window)->height;
- }
- } else {
- gdk_window_get_root_origin(GDK_WINDOW(gtk_widget_get_toplevel(widget)->window), &(rect->x), &(rect->y));
- if (window == windows->get_base_window()) {
- CSCLUtils *utils = CSCLUtils::get_instance();
- CSCLResourceCache *cache = CSCLResourceCache::get_instance();
-
- sclint scnWidth, scnHeight;
- utils->get_screen_resolution(&scnWidth, &scnHeight);
- rect->y = scnHeight - cache->get_cur_layout(window)->height;
- }
- }
- gtk_window_get_size(GTK_WINDOW(gtk_widget_get_toplevel(widget)), &(rect->width), &(rect->height));
-
- ret = TRUE;
- }
- return ret;
-}
-
-/**
- * Sets rotation
- */
-void
-CSCLWindowsImplGtk::set_window_rotation(const sclwindow window, sclint degree) {
- SCL_DEBUG();
- GtkWidget* widget = gtk_widget_get_toplevel(static_cast<GtkWidget*>(window));
- //gtk_window_set_rotate(GTK_WINDOW(widget), degree);
-}
-
-
-/**
- * Shows a message box
- */
-void
-CSCLWindowsImplGtk::show_message_box(const sclwindow parent, scl8 msg_type, sclchar* title, sclchar* msg) {
- SCL_DEBUG();
- scl_assert_return(strlen(msg) > 0);
-
- GtkWidget *dialog = NULL;
-
- switch (msgType) {
- case SCL_MSG_BOX_TYPE_INFO:
- dialog = gtk_message_dialog_new((GtkWindow*)parent,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_OK,
- msg, "");
- break;
- case SCL_MSG_BOX_TYPE_ERROR:
- dialog = gtk_message_dialog_new((GtkWindow*)parent,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- msg);
- break;
- case SCL_MSG_BOX_TYPE_WARNING:
- dialog = gtk_message_dialog_new((GtkWindow*)parent,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK,
- msg);
- break;
- default:
- break;
- }
-
- if (dialog) {
- gtk_window_set_title(GTK_WINDOW(dialog), title);
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- }
-}
-
-
-void
-CSCLWindowsImplGtk::set_keep_above(const sclwindow window, sclboolean keep_above) {
- SCL_DEBUG();
-
- gtk_window_set_keep_above(GTK_WINDOW(window), keep_above);
-}
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclwindows.h"
-#include <gtk/gtk.h>
-
-#ifndef __SCL_WINDOWS_GTK_H__
-#define __SCL_WINDOWS_GTK_H__
-
-namespace scl
-{
-class CSCLWindowsImplGtk : public CSCLWindowsImpl
-{
-public :
- CSCLWindowsImplGtk();
- ~CSCLWindowsImplGtk();
-
- sclwindow create_base_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height);
- sclwindow create_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height);
- sclwindow create_dim_window(const sclwindow parent, SclWindowContext *window_context, scl16 width, scl16 height);
- bool destroy_window(sclwindow window);
- void show_window(const sclwindow window, sclboolean queue);
- void hide_window(const sclwindow window, sclboolean force = FALSE);
- void move_window(const sclwindow window, scl16 x, scl16 y);
- void resize_window(const sclwindow window, scl16 width, scl16 height);
- void move_resize_window(const sclwindow window, scl16 x, scl16 y, scl16 width, scl16 height);
- void update_window(const sclwindow window, scl16 x = 0, scl16 y = 0, scl16 width = 0, scl16 height = 0);
- void set_window_rotation(const sclwindow window, sclint degree);
- void show_message_box(const sclwindow parent, scl8 msg_type, sclchar* title, sclchar* msg);
- sclboolean get_window_rect(const sclwindow window, SclRectangle *rect);
- void set_parent(const sclwindow parent_window, const sclwindow window);
- void set_keep_above(const sclwindow window, sclboolean keep_above);
-};
-} /* End of scl namespace */
-#endif __SCL_WINDOWS_GTK_H__
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclevents-win32.h"
-
-using namespace scl;
-
-void
-CSCLEventsImplWin32::init() {
-}
-
-
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclevents.h"
-
-#ifndef __SCL_EVENTS_WIN32_H__
-#define __SCL_EVENTS_WIN32_H__
-
-namespace scl
-{
-class CSCLEventsImplWin32 : public CSCLEventsImpl
-{
-public :
- void init();
-};
-} /* End of scl namespace */
-#endif
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclgraphics-win32.h"
-
-using namespace scl;
-
-void
-CSCLGraphicsImplWin32::draw_image(sclchar *imgPath) {
-}
-
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include "sclgraphics.h"
-
-#ifndef __SCL_GRAPHICS_WIN32_H__
-#define __SCL_GRAPHICS_WIN32_H__
-
-namespace scl
-{
-class CSCLGraphicsImplWin32 : public CSCLGraphicsImpl
-{
-public :
- void draw_image(sclchar *imgPath);
-};
-} /* End of scl namespace */
-#endif
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
+++ /dev/null
-/*
- * Copyright (c) 2012 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * 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.
- *
- */
-
-#include <stdarg.h>
-
-#include "sclutils.h"
-#include "scldebug.h"
-
-using namespace scl;
-
-void
-CSCLUtilsImplWin32::init() {
- SCL_DEBUG();
- open_devices();
-}
-
-void
-CSCLUtilsImplWin32::fini() {
- SCL_DEBUG();
- close_devices();
-}
-
-sclboolean
-CSCLUtilsImplWin32::get_screen_resolution(sclint *x, sclint *y) {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::update_screen_resolution() {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::play_tts(const sclchar* str) {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::play_sound(const sclchar* sndStyle) {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::play_vibration(const sclchar* vibeStyle, const scllong duration) {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::open_devices() {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclboolean
-CSCLUtilsImplWin32::close_devices() {
- SCL_DEBUG();
- return TRUE;
-}
-
-sclint CSCLUtilsImplWin32::log(const sclchar *msg)
-{
- SCL_DEBUG();
- return 0;
-}