[Redbutton-devel] SF.net SVN: redbutton: [241] redbutton-browser/trunk
Brought to you by:
skilvington
|
From: <ski...@us...> - 2007-03-09 16:40:53
|
Revision: 241
http://svn.sourceforge.net/redbutton/?rev=241&view=rev
Author: skilvington
Date: 2007-03-09 08:40:47 -0800 (Fri, 09 Mar 2007)
Log Message:
-----------
set initial border for DynamicLineArtClass
Modified Paths:
--------------
redbutton-browser/trunk/DynamicLineArtClass.c
redbutton-browser/trunk/LineArtClass.c
redbutton-browser/trunk/MHEGCanvas.c
redbutton-browser/trunk/MHEGCanvas.h
redbutton-browser/trunk/TODO
redbutton-browser/trunk/add_instance_vars.conf
Modified: redbutton-browser/trunk/DynamicLineArtClass.c
===================================================================
--- redbutton-browser/trunk/DynamicLineArtClass.c 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/DynamicLineArtClass.c 2007-03-09 16:40:47 UTC (rev 241)
@@ -27,6 +27,16 @@
/* offscreen canvas to draw on */
t->inst.canvas = new_MHEGCanvas(t->inst.BoxSize.x_length, t->inst.BoxSize.y_length);
+ /*
+ * default value for BorderedBoundingBox is true
+ * the border uses OriginalLineWidth/Style/Colour
+ * ie it can never change
+ */
+ if(!t->have_bordered_bounding_box || t->bordered_bounding_box)
+ MHEGCanvas_setBorder(t->inst.canvas, t->original_line_width, t->original_line_style, &t->inst.OriginalRefLineColour);
+ /* now we have set the border, clear the drawing area */
+ MHEGCanvas_clear(t->inst.canvas, &t->inst.OriginalRefFillColour);
+
/* add it to the DisplayStack of the active application */
MHEGEngine_addVisibleObject(&t->rootClass);
@@ -197,6 +207,7 @@
/* TODO */
/* clear to OriginalRefFillColour */
+/* dont forget to update the border */
printf("TODO: DynamicLineArtClass_SetBoxSize clear to OriginalRefFillColour\n");
/* if it is active, redraw it */
Modified: redbutton-browser/trunk/LineArtClass.c
===================================================================
--- redbutton-browser/trunk/LineArtClass.c 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/LineArtClass.c 2007-03-09 16:40:47 UTC (rev 241)
@@ -27,15 +27,19 @@
/* default colour is black */
if(t->have_original_ref_line_colour)
- MHEGColour_fromColour(&v->RefLineColour, &t->original_ref_line_colour);
+ MHEGColour_fromColour(&v->OriginalRefLineColour, &t->original_ref_line_colour);
else
- MHEGColour_black(&v->RefLineColour);
+ MHEGColour_black(&v->OriginalRefLineColour);
+ /* initial line colour */
+ memcpy(&v->RefLineColour, &v->OriginalRefLineColour, sizeof(MHEGColour));
/* default is transparent */
if(t->have_original_ref_fill_colour)
- MHEGColour_fromColour(&v->RefFillColour, &t->original_ref_fill_colour);
+ MHEGColour_fromColour(&v->OriginalRefFillColour, &t->original_ref_fill_colour);
else
- MHEGColour_transparent(&v->RefFillColour);
+ MHEGColour_transparent(&v->OriginalRefFillColour);
+ /* initial fill colour */
+ memcpy(&v->RefFillColour, &v->OriginalRefFillColour, sizeof(MHEGColour));
/* derived classes must init this if they want to use it */
v->canvas = NULL;
Modified: redbutton-browser/trunk/MHEGCanvas.c
===================================================================
--- redbutton-browser/trunk/MHEGCanvas.c 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/MHEGCanvas.c 2007-03-09 16:40:47 UTC (rev 241)
@@ -2,6 +2,7 @@
* MHEGCanvas.c
*/
+#include "ISO13522-MHEG-5.h"
#include "MHEGCanvas.h"
#include "utils.h"
@@ -22,3 +23,37 @@
safe_free(c);
}
+/*
+ * set a border, no drawing will be done in the border (apart from the border itself)
+ * width is in pixels
+ * style should be one of:
+ * original_line_style_solid
+ * original_line_style_dashed
+ * original_line_style_dotted
+ */
+
+void
+MHEGCanvas_setBorder(MHEGCanvas *c, int width, int style, MHEGColour *colour)
+{
+ if(width <= 0)
+ return;
+
+/* TODO */
+printf("TODO: MHEGCanvas_setBorder: width=%d style=%d RGBT=%02x%02x%02x%02x\n", width, style, colour->r, colour->g, colour->b, colour->t);
+
+ return;
+}
+
+/*
+ * fill the image (excluding the border) with the given colour
+ */
+
+void
+MHEGCanvas_clear(MHEGCanvas *c, MHEGColour *colour)
+{
+/* TODO */
+printf("TODO: MHEGCanvas_clear: RGBT=%02x%02x%02x%02x\n", colour->r, colour->g, colour->b, colour->t);
+
+ return;
+}
+
Modified: redbutton-browser/trunk/MHEGCanvas.h
===================================================================
--- redbutton-browser/trunk/MHEGCanvas.h 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/MHEGCanvas.h 2007-03-09 16:40:47 UTC (rev 241)
@@ -12,10 +12,15 @@
{
Pixmap contents; /* current image */
Picture contents_pic; /* XRender wrapper */
+ GC gc; /* contains the clip mask for the border */
} MHEGCanvas;
MHEGCanvas *new_MHEGCanvas(unsigned int, unsigned int);
void free_MHEGCanvas(MHEGCanvas *);
+void MHEGCanvas_setBorder(MHEGCanvas *, int, int, MHEGColour *);
+
+void MHEGCanvas_clear(MHEGCanvas *, MHEGColour *);
+
#endif /* __MHEGCANVAS_H__ */
Modified: redbutton-browser/trunk/TODO
===================================================================
--- redbutton-browser/trunk/TODO 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/TODO 2007-03-09 16:40:47 UTC (rev 241)
@@ -1,6 +1,3 @@
-BorderedBoundingBox
-
-
aspect ratio
Modified: redbutton-browser/trunk/add_instance_vars.conf
===================================================================
--- redbutton-browser/trunk/add_instance_vars.conf 2007-03-07 17:11:28 UTC (rev 240)
+++ redbutton-browser/trunk/add_instance_vars.conf 2007-03-09 16:40:47 UTC (rev 241)
@@ -141,6 +141,12 @@
#define LineStyle_dotted original_line_style_dotted
MHEGColour RefLineColour;
MHEGColour RefFillColour;
+ /*
+ * OriginalRefLine/FillColour are optional but have defaults defined in the spec
+ * store them here so we don't have to keep checking if they were specified or not
+ */
+ MHEGColour OriginalRefLineColour;
+ MHEGColour OriginalRefFillColour;
/* only used by DynamicLineArtClass */
MHEGCanvas *canvas;
} LineArtClassInstanceVars;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|