incubator-celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abroekh...@apache.org
Subject svn commit: r1185587 - in /incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example: circle/private/include/circle_shape.h circle/private/src/activator.c circle/private/src/circle_shape.c paint/private/src/paint_frame.c
Date Tue, 18 Oct 2011 11:44:15 GMT
Author: abroekhuis
Date: Tue Oct 18 11:44:15 2011
New Revision: 1185587

URL: http://svn.apache.org/viewvc?rev=1185587&view=rev
Log:
Updated paint example

Modified:
    incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/include/circle_shape.h
    incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/activator.c
    incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/circle_shape.c
    incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c

Modified: incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/include/circle_shape.h
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/include/circle_shape.h?rev=1185587&r1=1185586&r2=1185587&view=diff
==============================================================================
--- incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/include/circle_shape.h
(original)
+++ incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/include/circle_shape.h
Tue Oct 18 11:44:15 2011
@@ -2,13 +2,13 @@
  * default_shape.h
  *
  *  Created on: Aug 22, 2011
- *      Author: operator
  */
 
 #ifndef CIRCLE_SHAPE_H_
 #define CIRCLE_SHAPE_H_
 
+#include "celix_errno.h"
 
-extern SIMPLE_SHAPE circleShape_create(BUNDLE_CONTEXT context);
+celix_status_t circleShape_create(BUNDLE_CONTEXT context, SIMPLE_SHAPE *shape);
 
 #endif /* CIRCLE_SHAPE_H_ */

Modified: incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/activator.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/activator.c?rev=1185587&r1=1185586&r2=1185587&view=diff
==============================================================================
--- incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/activator.c
(original)
+++ incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/activator.c
Tue Oct 18 11:44:15 2011
@@ -24,45 +24,48 @@
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 
+#include "service_registration.h"
 #include "bundle_activator.h"
 #include "bundle_context.h"
 #include "simple_shape.h"
 #include "circle_shape.h"
 #include "simple_shape.h"
 
-struct greetingActivator {
+struct activator {
 	SERVICE_REGISTRATION reg;
 	apr_pool_t *pool;
 };
 
-typedef struct greetingActivator *GREETING_ACTIVATOR;
-
 celix_status_t bundleActivator_create(BUNDLE_CONTEXT context, void **userData) {
 	apr_pool_t *pool;
-	GREETING_ACTIVATOR activator;
+	struct activator *activator;
 	celix_status_t status = bundleContext_getMemoryPool(context, &pool);
 	if (status == CELIX_SUCCESS) {
-		*userData = apr_palloc(pool, sizeof(struct greetingActivator));
+		*userData = apr_palloc(pool, sizeof(struct activator));
 		activator = *userData;
 		activator->reg = NULL;
 		activator->pool = pool;
 	}
-	printf("Circle created %d\n", status);
 	return status;
 }
 
 celix_status_t bundleActivator_start(void * userData, BUNDLE_CONTEXT ctx) {
-	struct greetingActivator * act = (struct greetingActivator *) userData;
+	struct activator * act = (struct activator *) userData;
 	celix_status_t status = CELIX_SUCCESS;
-	SIMPLE_SHAPE es = circleShape_create(ctx);
+	SIMPLE_SHAPE es = NULL;
+	circleShape_create(ctx, &es);
 	PROPERTIES props = properties_create();
 	properties_set(props, "name", "circle");
     status = bundleContext_registerService(ctx, SIMPLE_SHAPE_SERVICE_NAME, es, props, &act->reg);
-	printf("Circle activated %d\n", status);
 	return status;
 }
 
 celix_status_t bundleActivator_stop(void * userData, BUNDLE_CONTEXT context) {
+	celix_status_t status = CELIX_SUCCESS;
+	struct activator * act = (struct activator *) userData;
+
+	status = serviceRegistration_unregister(act->reg);
+
 	return CELIX_SUCCESS;
 }
 

Modified: incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/circle_shape.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/circle_shape.c?rev=1185587&r1=1185586&r2=1185587&view=diff
==============================================================================
--- incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/circle_shape.c
(original)
+++ incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/circle/private/src/circle_shape.c
Tue Oct 18 11:44:15 2011
@@ -23,21 +23,35 @@
 
 void circleShape_draw(SIMPLE_SHAPE shape, GdkPixmap *pixMap, GtkWidget *widget, gdouble x,
gdouble y);
 
-SIMPLE_SHAPE circleShape_create(BUNDLE_CONTEXT context) {
+celix_status_t circleShape_create(BUNDLE_CONTEXT context, SIMPLE_SHAPE *shape) {
+	celix_status_t status = CELIX_SUCCESS;
+
 	BUNDLE bundle;
 	apr_pool_t *pool;
-	SIMPLE_SHAPE shape = (SIMPLE_SHAPE) malloc(sizeof(*shape));
-	bundleContext_getBundle(context, &bundle);
-	bundleContext_getMemoryPool(context, &pool);
-	shape->icon_path = NULL;
-	celix_status_t status = bundle_getEntry(bundle, CIRCLE_FILE, pool, &shape->icon_path);
-	shape->simpleShape_draw = circleShape_draw;
-	if (status == CELIX_SUCCESS) {
-		// no error
+
+	if (*shape != NULL || context == NULL) {
+		status = CELIX_ILLEGAL_ARGUMENT;
 	} else {
-		printf("Could not find resource %s\n", CIRCLE_FILE);
+		status = bundleContext_getBundle(context, &bundle);
+		if (status == CELIX_SUCCESS) {
+			status = bundleContext_getMemoryPool(context, &pool);
+			if (status == CELIX_SUCCESS) {
+				*shape = (SIMPLE_SHAPE) apr_palloc(pool, sizeof(**shape));
+				if (!*shape) {
+					status = CELIX_ENOMEM;
+				} else {
+					(*shape)->icon_path = NULL;
+					celix_status_t status = bundle_getEntry(bundle, CIRCLE_FILE, pool, &(*shape)->icon_path);
+					if (status == CELIX_SUCCESS) {
+						(*shape)->simpleShape_draw = circleShape_draw;
+					} else {
+						printf("Could not find resource %s\n", CIRCLE_FILE);
+					}
+				}
+			}
+		}
 	}
-	return shape;
+	return status;
 }
 
 void circleShape_draw(SIMPLE_SHAPE shape, GdkPixmap *pixMap, GtkWidget *widget, gdouble x,
gdouble y){

Modified: incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c
URL: http://svn.apache.org/viewvc/incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c?rev=1185587&r1=1185586&r2=1185587&view=diff
==============================================================================
--- incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c
(original)
+++ incubator/celix/trunk/examples/osgi-in-action/chapter04-paint-example/paint/private/src/paint_frame.c
Tue Oct 18 11:44:15 2011
@@ -117,7 +117,6 @@ motion_notify_event( GtkWidget *widget, 
 {
   int x, y;
   GdkModifierType state;
-  printf("motion notify event\n");
   if (event->is_hint) {
     gdk_window_get_pointer (event->window, &x, &y, &state);
   } else {
@@ -132,7 +131,6 @@ motion_notify_event( GtkWidget *widget, 
 static gboolean
 expose_event( GtkWidget *widget, GdkEventExpose *event )
 {
-	printf("expose event\n");
 	gdk_draw_drawable(widget->window,
 			widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
 			this->m_pixMap,
@@ -145,7 +143,6 @@ expose_event( GtkWidget *widget, GdkEven
 static gboolean
 configure_event( GtkWidget *widget, GdkEventConfigure *event )
 {
-  printf("configure event\n");
   if (this->m_pixMap) {
     g_object_unref(this->m_pixMap);
   }
@@ -314,7 +311,7 @@ PAINT_FRAME paintFrame_create(BUNDLE_CON
 			| GDK_POINTER_MOTION_MASK
 			| GDK_POINTER_MOTION_HINT_MASK);
 
-	gtk_drawing_area_size(this->m_drawingArea, 200, 200);
+	gtk_widget_set_size_request(this->m_drawingArea, 200, 200);
 
 	/*Add the graph navigation panel to the main panel. */
 	gtk_box_pack_start (GTK_BOX(this->m_mainPanel), this->m_toolBar, TRUE, TRUE, 0);



Mime
View raw message