aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Kołodziejski2009-02-21 09:39:10 +0000
committerPaweł Kołodziejski2009-02-21 09:39:10 +0000
commit9ad232e5cfac377b8a1b763683e19358b3d56c37 (patch)
tree522c475b841477c1b7be3576a12350ded466fa4e
parent0d3f2573c6ab40c0e8cdd82de1e9f321611d36f1 (diff)
downloadscummvm-rg350-9ad232e5cfac377b8a1b763683e19358b3d56c37.tar.gz
scummvm-rg350-9ad232e5cfac377b8a1b763683e19358b3d56c37.tar.bz2
scummvm-rg350-9ad232e5cfac377b8a1b763683e19358b3d56c37.zip
formating
svn-id: r38672
-rw-r--r--engines/sci/gfx/widgets.cpp1003
1 files changed, 346 insertions, 657 deletions
diff --git a/engines/sci/gfx/widgets.cpp b/engines/sci/gfx/widgets.cpp
index b01ab3846b..2e92242a9e 100644
--- a/engines/sci/gfx/widgets.cpp
+++ b/engines/sci/gfx/widgets.cpp
@@ -26,7 +26,7 @@
#include "sci/include/sci_memory.h"
#include "sci/include/gfx_widgets.h"
-#undef GFXW_DEBUG_DIRTY /* Enable to debug dirty rectangle propagation (writes to stderr) */
+#undef GFXW_DEBUG_DIRTY // Enable to debug dirty rectangle propagation (writes to stderr)
#ifdef GFXW_DEBUG_DIRTY
# define DDIRTY error("%s:%5d| ", __FILE__, __LINE__); fprintf
@@ -37,15 +37,14 @@
Common::Point gfxw_point_zero(0, 0);
#define MAX_SERIAL_NUMBER 0x7fffffff
-static int widget_serial_number_counter = 0x10000; /* Avoid confusion with IDs */
+static int widget_serial_number_counter = 0x10000; // Avoid confusion with IDs
#ifdef GFXW_DEBUG_WIDGETS
gfxw_widget_t *debug_widgets[GFXW_DEBUG_WIDGETS];
int debug_widget_pos = 0;
-static void
-_gfxw_debug_add_widget(gfxw_widget_t *widget) {
+static void _gfxw_debug_add_widget(gfxw_widget_t *widget) {
if (debug_widget_pos == GFXW_DEBUG_WIDGETS) {
GFXERROR("WIDGET DEBUG: Allocated the maximum number of %d widgets- Aborting", GFXW_DEBUG_WIDGETS);
BREAKPOINT();
@@ -53,14 +52,12 @@ _gfxw_debug_add_widget(gfxw_widget_t *widget) {
debug_widgets[debug_widget_pos++] = widget;
}
-static void
-_gfxw_debug_remove_widget(gfxw_widget_t *widget) {
+static void _gfxw_debug_remove_widget(gfxw_widget_t *widget) {
int i;
int found = 0;
for (i = 0; i < debug_widget_pos; i++) {
if (debug_widgets[i] == widget) {
- memmove(debug_widgets + i, debug_widgets + i + 1,
- (sizeof(gfxw_widget_t *)) * (debug_widget_pos - i - 1));
+ memmove(debug_widgets + i, debug_widgets + i + 1, (sizeof(gfxw_widget_t *)) * (debug_widget_pos - i - 1));
debug_widgets[debug_widget_pos--] = NULL;
found++;
}
@@ -76,21 +73,19 @@ _gfxw_debug_remove_widget(gfxw_widget_t *widget) {
BREAKPOINT();
}
}
-#else /* !GFXW_DEBUG_WIDGETS */
+#else // !GFXW_DEBUG_WIDGETS
#define _gfxw_debug_add_widget(a)
#define _gfxw_debug_remove_widget(a)
#endif
-static inline void
-indent(int indentation) {
+static inline void indent(int indentation) {
int i;
for (i = 0; i < indentation; i++)
sciprintf(" ");
}
-static void
-_gfxw_print_widget(gfxw_widget_t *widget, int indentation) {
+static void _gfxw_print_widget(gfxw_widget_t *widget, int indentation) {
unsigned int i;
char flags_list[] = "VOCDTMI";
@@ -124,17 +119,14 @@ _gfxw_print_widget(gfxw_widget_t *widget, int indentation) {
sciprintf(" ");
}
-static int
-_gfxwop_print_empty(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_print_empty(gfxw_widget_t *widget, int indentation) {
_gfxw_print_widget(widget, indentation);
sciprintf("<untyped #%d>", widget->type);
return 0;
}
-
-gfxw_widget_t *
-_gfxw_new_widget(int size, gfxw_widget_type_t type) {
+gfxw_widget_t * _gfxw_new_widget(int size, gfxw_widget_type_t type) {
gfxw_widget_t *widget = (gfxw_widget_t*)sci_malloc(size);
#ifdef SATISFY_PURIFY
memset(widget, 0, size);
@@ -166,14 +158,12 @@ _gfxw_new_widget(int size, gfxw_widget_type_t type) {
return widget;
}
-
-static inline int
-verify_widget(gfxw_widget_t *widget) {
+static inline int verify_widget(gfxw_widget_t *widget) {
if (!widget) {
GFXERROR("Attempt to use NULL widget\n");
#ifdef GFXW_DEBUG_WIDGETS
BREAKPOINT();
-#endif /* GFXW_DEBUG_WIDGETS */
+#endif
return 1;
} else if (widget->magic != GFXW_MAGIC_VALID) {
if (widget->magic == GFXW_MAGIC_INVALID) {
@@ -183,7 +173,7 @@ verify_widget(gfxw_widget_t *widget) {
}
#ifdef GFXW_DEBUG_WIDGETS
BREAKPOINT();
-#endif /* GFXW_DEBUG_WIDGETS */
+#endif
return 1;
}
return 0;
@@ -192,8 +182,7 @@ verify_widget(gfxw_widget_t *widget) {
#define VERIFY_WIDGET(w) \
if (verify_widget((gfxw_widget_t *)(w))) { GFXERROR("Error occured while validating widget\n"); }
-static void
-_gfxw_unallocate_widget(gfx_state_t *state, gfxw_widget_t *widget) {
+static void _gfxw_unallocate_widget(gfx_state_t *state, gfxw_widget_t *widget) {
if (GFXW_IS_TEXT(widget)) {
gfxw_text_t *text = (gfxw_text_t *) widget;
@@ -225,52 +214,42 @@ _gfxw_unallocate_widget(gfx_state_t *state, gfxw_widget_t *widget) {
} \
}
+//********** Widgets *************
-/**********************************/
-/*********** Widgets **************/
-/**********************************/
-
-/* Base class operations and common stuff */
+// Base class operations and common stuff
-/* Assertion for drawing */
+// Assertion for drawing
#define DRAW_ASSERT(widget, exp_type) \
- if (!(widget)) { \
- sciprintf("L%d: NULL widget", __LINE__); \
- return 1; \
- } \
- if (!(widget)->print) { \
- sciprintf("L%d: Widget of type %d does not have print function", __LINE__, \
- (widget)->type); \
- } \
- if ((widget)->type != (exp_type)) { \
- sciprintf("L%d: Error in widget: Expected type " # exp_type "(%d) but got %d\n", \
- __LINE__, exp_type, (widget)->type); \
- sciprintf("Erroneous widget: "); \
- widget->print(widget, 4); \
- sciprintf("\n"); \
- return 1; \
- } \
- if (!(widget->flags & GFXW_FLAG_VISIBLE)) \
- return 0; \
- if (!(widget->type == GFXW_VISUAL || widget->visual)) { \
- sciprintf("L%d: Error while drawing widget: Widget has no visual\n", __LINE__); \
- sciprintf("Erroneous widget: "); \
- widget->print(widget, 1); \
- sciprintf("\n"); \
- return 1; \
- }
-
+ if (!(widget)) { \
+ sciprintf("L%d: NULL widget", __LINE__); \
+ return 1; \
+ } \
+ if (!(widget)->print) { \
+ sciprintf("L%d: Widget of type %d does not have print function", __LINE__, (widget)->type); \
+ } \
+ if ((widget)->type != (exp_type)) { \
+ sciprintf("L%d: Error in widget: Expected type " # exp_type "(%d) but got %d\n", __LINE__, exp_type, (widget)->type); \
+ sciprintf("Erroneous widget: "); \
+ widget->print(widget, 4); \
+ sciprintf("\n"); \
+ return 1; \
+ } \
+ if (!(widget->flags & GFXW_FLAG_VISIBLE)) \
+ return 0; \
+ if (!(widget->type == GFXW_VISUAL || widget->visual)) { \
+ sciprintf("L%d: Error while drawing widget: Widget has no visual\n", __LINE__); \
+ sciprintf("Erroneous widget: "); \
+ widget->print(widget, 1); \
+ sciprintf("\n"); \
+ return 1; \
+ }
-static inline int
-_color_equals(gfx_color_t a, gfx_color_t b) {
+static inline int _color_equals(gfx_color_t a, gfx_color_t b) {
if (a.mask != b.mask)
return 0;
if (a.mask & GFX_MASK_VISUAL) {
- if (a.visual.r != b.visual.r
- || a.visual.g != b.visual.g
- || a.visual.b != b.visual.b
- || a.alpha != b.alpha)
+ if (a.visual.r != b.visual.r || a.visual.g != b.visual.g || a.visual.b != b.visual.b || a.alpha != b.alpha)
return 0;
}
@@ -285,27 +264,22 @@ _color_equals(gfx_color_t a, gfx_color_t b) {
return 1;
}
-static int
-_gfxwop_basic_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
+static int _gfxwop_basic_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
widget->visual = visual;
if (widget->parent) {
- DDIRTY(stderr, "basic_set_visual: DOWNWARDS rel(%d,%d,%d,%d, 1)\n",
- GFX_PRINT_RECT(widget->bounds));
+ DDIRTY(stderr, "basic_set_visual: DOWNWARDS rel(%d,%d,%d,%d, 1)\n", GFX_PRINT_RECT(widget->bounds));
widget->parent->add_dirty_rel(widget->parent, widget->bounds, 1);
}
return 0;
}
-
-static int
-_gfxwop_basic_should_replace(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_basic_should_replace(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 0;
}
-static inline void
-_gfxw_set_ops(gfxw_widget_t *widget, gfxw_point_op *draw, gfxw_op *free, gfxw_op *tag, gfxw_op_int *print,
+static inline void _gfxw_set_ops(gfxw_widget_t *widget, gfxw_point_op *draw, gfxw_op *free, gfxw_op *tag, gfxw_op_int *print,
gfxw_bin_op *compare_to, gfxw_bin_op *equals, gfxw_bin_op *superarea_of) {
widget->draw = draw;
widget->widfree = free;
@@ -319,8 +293,7 @@ _gfxw_set_ops(gfxw_widget_t *widget, gfxw_point_op *draw, gfxw_op *free, gfxw_op
widget->set_visual = _gfxwop_basic_set_visual;
}
-void
-gfxw_remove_widget_from_container(gfxw_container_t *container, gfxw_widget_t *widget) {
+void gfxw_remove_widget_from_container(gfxw_container_t *container, gfxw_widget_t *widget) {
gfxw_widget_t **seekerp;
if (!container) {
@@ -354,13 +327,12 @@ gfxw_remove_widget_from_container(gfxw_container_t *container, gfxw_widget_t *wi
if (container->nextpp == &(widget->next))
container->nextpp = seekerp;
- *seekerp = widget->next; /* Remove it */
+ *seekerp = widget->next; // Remove it
widget->parent = NULL;
widget->next = NULL;
}
-static int
-_gfxwop_basic_free(gfxw_widget_t *widget) {
+static int _gfxwop_basic_free(gfxw_widget_t *widget) {
gfxw_visual_t *visual = widget->visual;
gfx_state_t *state = (visual) ? visual->gfx_state : NULL;
@@ -377,77 +349,59 @@ _gfxwop_basic_free(gfxw_widget_t *widget) {
_gfxw_unallocate_widget(state, widget);
-
return 0;
}
-
-static int
-_gfxwop_basic_tag(gfxw_widget_t *widget) {
+static int _gfxwop_basic_tag(gfxw_widget_t *widget) {
widget->flags |= GFXW_FLAG_TAGGED;
return 0;
}
-
-static int
-_gfxwop_basic_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_basic_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-
-static int
-_gfxwop_basic_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_basic_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 0;
}
-
-static int
-_gfxwop_basic_superarea_of(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_basic_superarea_of(gfxw_widget_t *widget, gfxw_widget_t *other) {
return (widget == other);
}
-/*-------------*/
-/**** Boxes ****/
-/*-------------*/
+//*** Boxes ***
-static inline rect_t
-_move_rect(rect_t rect, Common::Point point) {
+static inline rect_t _move_rect(rect_t rect, Common::Point point) {
return gfx_rect(rect.x + point.x, rect.y + point.y, rect.xl, rect.yl);
}
-static inline void
-_split_rect(rect_t rect, Common::Point *p1, Common::Point *p2) {
+static inline void _split_rect(rect_t rect, Common::Point *p1, Common::Point *p2) {
p1->x = rect.x;
p1->y = rect.y;
p2->x = rect.x + rect.xl;
p2->y = rect.y + rect.yl;
}
-static inline Common::Point
-_move_point(rect_t rect, Common::Point point) {
+static inline Common::Point _move_point(rect_t rect, Common::Point point) {
return Common::Point(rect.x + point.x, rect.y + point.y);
}
-static int
-_gfxwop_box_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_box_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_box_t *box = (gfxw_box_t *) widget;
DRAW_ASSERT(widget, GFXW_BOX);
- GFX_ASSERT(gfxop_draw_box(box->visual->gfx_state, _move_rect(box->bounds, pos), box->color1,
- box->color2, box->shade_type));
+ GFX_ASSERT(gfxop_draw_box(box->visual->gfx_state, _move_rect(box->bounds, pos), box->color1, box->color2, box->shade_type));
return 0;
}
-static int
-_gfxwop_box_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_box_print(gfxw_widget_t *widget, int indentation) {
_gfxw_print_widget(widget, indentation);
sciprintf("BOX");
return 0;
}
-static int
-_gfxwop_box_superarea_of(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_box_superarea_of(gfxw_widget_t *widget, gfxw_widget_t *other) {
gfxw_box_t *box = (gfxw_box_t *) widget;
if (box->color1.alpha)
@@ -462,9 +416,8 @@ _gfxwop_box_superarea_of(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-static int
-_gfxwop_box_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
- gfxw_box_t *wbox = (gfxw_box_t *) widget, *obox;
+static int _gfxwop_box_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+ gfxw_box_t *wbox = (gfxw_box_t *)widget, *obox;
if (other->type != GFXW_BOX)
return 0;
@@ -486,25 +439,17 @@ _gfxwop_box_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-void
-_gfxw_set_ops_BOX(gfxw_widget_t *widget) {
- _gfxw_set_ops(GFXW(widget), _gfxwop_box_draw,
- _gfxwop_basic_free,
- _gfxwop_basic_tag,
- _gfxwop_box_print,
- _gfxwop_basic_compare_to,
- _gfxwop_box_equals,
- _gfxwop_box_superarea_of);
+void _gfxw_set_ops_BOX(gfxw_widget_t *widget) {
+ _gfxw_set_ops(GFXW(widget), _gfxwop_box_draw, _gfxwop_basic_free, _gfxwop_basic_tag, _gfxwop_box_print,
+ _gfxwop_basic_compare_to, _gfxwop_box_equals, _gfxwop_box_superarea_of);
}
-static inline int
-_gfxw_color_get_priority(gfx_color_t color) {
+static inline int _gfxw_color_get_priority(gfx_color_t color) {
return (color.mask & GFX_MASK_PRIORITY) ? color.priority : -1;
}
-gfxw_box_t *
-gfxw_new_box(gfx_state_t *state, rect_t area, gfx_color_t color1, gfx_color_t color2, gfx_box_shade_t shade_type) {
- gfxw_box_t *widget = (gfxw_box_t *) _gfxw_new_widget(sizeof(gfxw_box_t), GFXW_BOX);
+gfxw_box_t *gfxw_new_box(gfx_state_t *state, rect_t area, gfx_color_t color1, gfx_color_t color2, gfx_box_shade_t shade_type) {
+ gfxw_box_t *widget = (gfxw_box_t *)_gfxw_new_widget(sizeof(gfxw_box_t), GFXW_BOX);
widget->widget_priority = _gfxw_color_get_priority(color1);
widget->bounds = area;
@@ -514,9 +459,7 @@ gfxw_new_box(gfx_state_t *state, rect_t area, gfx_color_t color1, gfx_color_t co
widget->flags |= GFXW_FLAG_VISIBLE;
- if ((color1.mask & GFX_MASK_VISUAL)
- && ((state && (state->driver->mode->palette))
- || (!color1.alpha && !color2.alpha)))
+ if ((color1.mask & GFX_MASK_VISUAL) && ((state && (state->driver->mode->palette)) || (!color1.alpha && !color2.alpha)))
widget->flags |= GFXW_FLAG_OPAQUE;
_gfxw_set_ops_BOX(GFXW(widget));
@@ -524,11 +467,9 @@ gfxw_new_box(gfx_state_t *state, rect_t area, gfx_color_t color1, gfx_color_t co
return widget;
}
-
-static inline gfxw_primitive_t *
-_gfxw_new_primitive(rect_t area, gfx_color_t color, gfx_line_mode_t mode,
- gfx_line_style_t style, gfxw_widget_type_t type) {
- gfxw_primitive_t *widget = (gfxw_primitive_t *) _gfxw_new_widget(sizeof(gfxw_primitive_t), type);
+static inline gfxw_primitive_t *_gfxw_new_primitive(rect_t area, gfx_color_t color, gfx_line_mode_t mode,
+ gfx_line_style_t style, gfxw_widget_type_t type) {
+ gfxw_primitive_t *widget = (gfxw_primitive_t *)_gfxw_new_widget(sizeof(gfxw_primitive_t), type);
widget->widget_priority = _gfxw_color_get_priority(color);
widget->bounds = area;
@@ -540,12 +481,9 @@ _gfxw_new_primitive(rect_t area, gfx_color_t color, gfx_line_mode_t mode,
return widget;
}
-/*------------------*/
-/**** Rectangles ****/
-/*------------------*/
+//*** Rectangles ***
-static int
-_gfxwop_primitive_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_primitive_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
gfxw_primitive_t *wprim = (gfxw_primitive_t *) widget, *oprim;
if (widget->type != other->type)
return 0;
@@ -567,57 +505,41 @@ _gfxwop_primitive_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-static int
-_gfxwop_rect_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_rect_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_primitive_t *rect = (gfxw_primitive_t *) widget;
DRAW_ASSERT(widget, GFXW_RECT);
- GFX_ASSERT(gfxop_draw_rectangle(rect->visual->gfx_state,
- gfx_rect(rect->bounds.x + pos.x, rect->bounds.y + pos.y,
- rect->bounds.xl - 1, rect->bounds.yl - 1),
- rect->color, rect->line_mode, rect->line_style));
-
+ GFX_ASSERT(gfxop_draw_rectangle(rect->visual->gfx_state, gfx_rect(rect->bounds.x + pos.x, rect->bounds.y + pos.y,
+ rect->bounds.xl - 1, rect->bounds.yl - 1), rect->color, rect->line_mode, rect->line_style));
return 0;
}
-static int
-_gfxwop_rect_print(gfxw_widget_t *rect, int indentation) {
+static int _gfxwop_rect_print(gfxw_widget_t *rect, int indentation) {
_gfxw_print_widget(GFXW(rect), indentation);
sciprintf("RECT");
+
return 0;
}
-
-void
-_gfxw_set_ops_RECT(gfxw_widget_t *prim) {
- _gfxw_set_ops(GFXW(prim), _gfxwop_rect_draw,
- _gfxwop_basic_free,
- _gfxwop_basic_tag,
- _gfxwop_rect_print,
- _gfxwop_basic_compare_to,
- _gfxwop_primitive_equals,
- _gfxwop_basic_superarea_of);
+void _gfxw_set_ops_RECT(gfxw_widget_t *prim) {
+ _gfxw_set_ops(GFXW(prim), _gfxwop_rect_draw, _gfxwop_basic_free, _gfxwop_basic_tag, _gfxwop_rect_print,
+ _gfxwop_basic_compare_to, _gfxwop_primitive_equals, _gfxwop_basic_superarea_of);
}
-gfxw_primitive_t *
-gfxw_new_rect(rect_t rect, gfx_color_t color, gfx_line_mode_t line_mode, gfx_line_style_t line_style) {
+gfxw_primitive_t *gfxw_new_rect(rect_t rect, gfx_color_t color, gfx_line_mode_t line_mode, gfx_line_style_t line_style) {
gfxw_primitive_t *prim = _gfxw_new_primitive(rect, color, line_mode, line_style, GFXW_RECT);
prim->bounds.xl++;
- prim->bounds.yl++; /* Since it is actually one pixel bigger in each direction */
+ prim->bounds.yl++; // Since it is actually one pixel bigger in each direction
_gfxw_set_ops_RECT(GFXW(prim));
return prim;
}
+//*** Lines ***
-/*-------------*/
-/**** Lines ****/
-/*-------------*/
-
-static int
-_gfxwop_line_draw(gfxw_widget_t *widget, Common::Point pos) {
- gfxw_primitive_t *line = (gfxw_primitive_t *) widget;
+static int _gfxwop_line_draw(gfxw_widget_t *widget, Common::Point pos) {
+ gfxw_primitive_t *line = (gfxw_primitive_t *)widget;
rect_t linepos = widget->bounds;
Common::Point p1, p2;
@@ -631,40 +553,29 @@ _gfxwop_line_draw(gfxw_widget_t *widget, Common::Point pos) {
DRAW_ASSERT(widget, GFXW_LINE);
}
-
_split_rect(_move_rect(linepos, pos), &p1, &p2);
- GFX_ASSERT(gfxop_draw_line(line->visual->gfx_state, p1, p2,
- line->color, line->line_mode, line->line_style));
-
+ GFX_ASSERT(gfxop_draw_line(line->visual->gfx_state, p1, p2, line->color, line->line_mode, line->line_style));
return 0;
}
-static int
-_gfxwop_line_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_line_print(gfxw_widget_t *widget, int indentation) {
_gfxw_print_widget(widget, indentation);
if (widget->type == GFXW_INVERSE_LINE)
sciprintf("INVERSE-LINE");
else
sciprintf("LINE");
+
return 0;
}
-void
-_gfxw_set_ops_LINE(gfxw_widget_t *prim) {
- _gfxw_set_ops(GFXW(prim), _gfxwop_line_draw,
- _gfxwop_basic_free,
- _gfxwop_basic_tag,
- _gfxwop_line_print,
- _gfxwop_basic_compare_to,
- _gfxwop_primitive_equals,
- _gfxwop_basic_superarea_of);
-
+void _gfxw_set_ops_LINE(gfxw_widget_t *prim) {
+ _gfxw_set_ops(GFXW(prim), _gfxwop_line_draw, _gfxwop_basic_free, _gfxwop_basic_tag, _gfxwop_line_print,
+ _gfxwop_basic_compare_to, _gfxwop_primitive_equals, _gfxwop_basic_superarea_of);
}
-gfxw_primitive_t *
-gfxw_new_line(Common::Point start, Common::Point end, gfx_color_t color, gfx_line_mode_t line_mode, gfx_line_style_t line_style) {
+gfxw_primitive_t *gfxw_new_line(Common::Point start, Common::Point end, gfx_color_t color, gfx_line_mode_t line_mode, gfx_line_style_t line_style) {
gfxw_primitive_t *prim;
- /* Encode into internal representation */
+ // Encode into internal representation
rect_t line = gfx_rect(start.x, start.y, end.x - start.x, end.y - start.y);
byte inverse = 0;
@@ -692,14 +603,10 @@ gfxw_new_line(Common::Point start, Common::Point end, gfx_color_t color, gfx_lin
return prim;
}
-/*------------------------------*/
-/**** Views and static views ****/
-/*------------------------------*/
-
+//*** Views and static views ***
-gfxw_view_t *
-_gfxw_new_simple_view(gfx_state_t *state, Common::Point pos, int view, int loop, int cel, int palette, int priority, int control,
- gfx_alignment_t halign, gfx_alignment_t valign, int size, gfxw_widget_type_t type) {
+gfxw_view_t *_gfxw_new_simple_view(gfx_state_t *state, Common::Point pos, int view, int loop, int cel, int palette, int priority, int control,
+ gfx_alignment_t halign, gfx_alignment_t valign, int size, gfxw_widget_type_t type) {
gfxw_view_t *widget;
int width, height;
Common::Point offset;
@@ -715,13 +622,11 @@ _gfxw_new_simple_view(gfx_state_t *state, Common::Point pos, int view, int loop,
return NULL;
}
- widget = (gfxw_view_t *) _gfxw_new_widget(size, type);
+ widget = (gfxw_view_t *)_gfxw_new_widget(size, type);
widget->widget_priority = priority;
widget->pos = pos;
- widget->color.mask =
- ((priority < 0) ? 0 : GFX_MASK_PRIORITY)
- | ((control < 0) ? 0 : GFX_MASK_CONTROL);
+ widget->color.mask = ((priority < 0) ? 0 : GFX_MASK_PRIORITY) | ((control < 0) ? 0 : GFX_MASK_CONTROL);
widget->color.priority = priority;
widget->color.control = control;
widget->view = view;
@@ -746,33 +651,28 @@ _gfxw_new_simple_view(gfx_state_t *state, Common::Point pos, int view, int loop,
return widget;
}
-int
-_gfxwop_view_draw(gfxw_widget_t *widget, Common::Point pos) {
- gfxw_view_t *view = (gfxw_view_t *) widget;
+int _gfxwop_view_draw(gfxw_widget_t *widget, Common::Point pos) {
+ gfxw_view_t *view = (gfxw_view_t *)widget;
DRAW_ASSERT(widget, GFXW_VIEW);
- GFX_ASSERT(gfxop_draw_cel(view->visual->gfx_state, view->view, view->loop,
- view->cel, Common::Point(view->pos.x + pos.x, view->pos.y + pos.y),
- view->color, view->palette));
+ GFX_ASSERT(gfxop_draw_cel(view->visual->gfx_state, view->view, view->loop, view->cel,
+ Common::Point(view->pos.x + pos.x, view->pos.y + pos.y), view->color, view->palette));
return 0;
}
-static int
-_gfxwop_static_view_draw(gfxw_widget_t *widget, Common::Point pos) {
- gfxw_view_t *view = (gfxw_view_t *) widget;
+static int _gfxwop_static_view_draw(gfxw_widget_t *widget, Common::Point pos) {
+ gfxw_view_t *view = (gfxw_view_t *)widget;
DRAW_ASSERT(widget, GFXW_VIEW);
GFX_ASSERT(gfxop_draw_cel_static(view->visual->gfx_state, view->view, view->loop,
- view->cel, _move_point(view->bounds, pos),
- view->color, view->palette));
+ view->cel, _move_point(view->bounds, pos), view->color, view->palette));
return 0;
}
-static int
-_w_gfxwop_view_print(gfxw_widget_t *widget, const char *name, int indentation) {
- gfxw_view_t *view = (gfxw_view_t *) widget;
+static int _w_gfxwop_view_print(gfxw_widget_t *widget, const char *name, int indentation) {
+ gfxw_view_t *view = (gfxw_view_t *)widget;
_gfxw_print_widget(widget, indentation);
sciprintf(name);
@@ -783,29 +683,21 @@ _w_gfxwop_view_print(gfxw_widget_t *widget, const char *name, int indentation) {
return 0;
}
-static int
-_gfxwop_view_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_view_print(gfxw_widget_t *widget, int indentation) {
return _w_gfxwop_view_print(widget, "VIEW", indentation);
}
-static int
-_gfxwop_static_view_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_static_view_print(gfxw_widget_t *widget, int indentation) {
return _w_gfxwop_view_print(widget, "PICVIEW", indentation);
}
-void
-_gfxw_set_ops_VIEW(gfxw_widget_t *view, char stat) {
- _gfxw_set_ops(GFXW(view), (stat) ? _gfxwop_static_view_draw : _gfxwop_view_draw,
- _gfxwop_basic_free,
- _gfxwop_basic_tag,
- (stat) ? _gfxwop_static_view_print : _gfxwop_view_print,
- _gfxwop_basic_compare_to,
- _gfxwop_basic_equals,
- _gfxwop_basic_superarea_of);
+void _gfxw_set_ops_VIEW(gfxw_widget_t *view, char stat) {
+ _gfxw_set_ops(GFXW(view), (stat) ? _gfxwop_static_view_draw : _gfxwop_view_draw, _gfxwop_basic_free,
+ _gfxwop_basic_tag, (stat) ? _gfxwop_static_view_print : _gfxwop_view_print,
+ _gfxwop_basic_compare_to, _gfxwop_basic_equals, _gfxwop_basic_superarea_of);
}
-gfxw_view_t *
-gfxw_new_view(gfx_state_t *state, Common::Point pos, int view_nr, int loop, int cel, int palette, int priority, int control,
+gfxw_view_t *gfxw_new_view(gfx_state_t *state, Common::Point pos, int view_nr, int loop, int cel, int palette, int priority, int control,
gfx_alignment_t halign, gfx_alignment_t valign, int flags) {
gfxw_view_t *view;
@@ -825,66 +717,52 @@ gfxw_new_view(gfx_state_t *state, Common::Point pos, int view_nr, int loop, int
return view;
}
-/*---------------------*/
-/**** Dynamic Views ****/
-/*---------------------*/
+//*** Dynamic Views ***
-static int
-_gfxwop_dyn_view_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_dyn_view_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_dyn_view_t *view = (gfxw_dyn_view_t *) widget;
DRAW_ASSERT(widget, GFXW_DYN_VIEW);
GFX_ASSERT(gfxop_draw_cel(view->visual->gfx_state, view->view, view->loop,
- view->cel, _move_point(view->draw_bounds, pos),
- view->color, view->palette));
+ view->cel, _move_point(view->draw_bounds, pos), view->color, view->palette));
/*
- gfx_color_t red; red.visual.r = 0xff; red.visual.g = red.visual.b = 0; red.mask = GFX_MASK_VISUAL;
+ gfx_color_t red;
+ red.visual.r = 0xff;
+ red.visual.g = red.visual.b = 0;
+ red.mask = GFX_MASK_VISUAL;
GFX_ASSERT(gfxop_draw_rectangle(view->visual->gfx_state,
- gfx_rect(view->bounds.x + pos.x, view->bounds.y + pos.y,
- view->bounds.xl - 1, view->bounds.yl - 1),
- red, 0, 0));
+ gfx_rect(view->bounds.x + pos.x, view->bounds.y + pos.y, view->bounds.xl - 1, view->bounds.yl - 1), red, 0, 0));
*/
-
return 0;
}
-static int
-_gfxwop_draw_nop(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_draw_nop(gfxw_widget_t *widget, Common::Point pos) {
return 0;
}
-static int
-_gfxwop_pic_view_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_pic_view_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_dyn_view_t *view = (gfxw_dyn_view_t *) widget;
DRAW_ASSERT(widget, GFXW_PIC_VIEW);
GFX_ASSERT(gfxop_set_clip_zone(view->visual->gfx_state, view->parent->zone));
- GFX_ASSERT(gfxop_draw_cel_static_clipped(view->visual->gfx_state,
- view->view, view->loop,
- view->cel,
- _move_point(view->draw_bounds, pos),
- view->color, view->palette));
+ GFX_ASSERT(gfxop_draw_cel_static_clipped(view->visual->gfx_state, view->view, view->loop,
+ view->cel, _move_point(view->draw_bounds, pos), view->color, view->palette));
- /* Draw again on the back buffer */
- GFX_ASSERT(gfxop_draw_cel(view->visual->gfx_state,
- view->view, view->loop,
- view->cel,
- _move_point(view->draw_bounds, pos),
- view->color, view->palette));
+ // Draw again on the back buffer
+ GFX_ASSERT(gfxop_draw_cel(view->visual->gfx_state, view->view, view->loop, view->cel,
+ _move_point(view->draw_bounds, pos), view->color, view->palette));
- widget->draw = _gfxwop_draw_nop; /* No more drawing needs to be done */
-
+ widget->draw = _gfxwop_draw_nop; // No more drawing needs to be done
return 0;
}
-static int
-_gfxwop_some_view_print(gfxw_widget_t *widget, int indentation, const char *type_string) {
- gfxw_dyn_view_t *view = (gfxw_dyn_view_t *) widget;
+static int _gfxwop_some_view_print(gfxw_widget_t *widget, int indentation, const char *type_string) {
+ gfxw_dyn_view_t *view = (gfxw_dyn_view_t *)widget;
_gfxw_print_widget(widget, indentation);
@@ -892,39 +770,30 @@ _gfxwop_some_view_print(gfxw_widget_t *widget, int indentation, const char *type
sciprintf(" SORT=%d z=%d seq=%d (%d/%d/%d)@(%d,%d)[p:%d,c:%d]; sig[%04x@%p]", view->force_precedence, view->z,
view->sequence, view->view, view->loop, view->cel, view->pos.x, view->pos.y,
(view->color.mask & GFX_MASK_PRIORITY) ? view->color.priority : -1,
- (view->color.mask & GFX_MASK_CONTROL) ? view->color.control : -1,
- view->signal, view->signalp);
+ (view->color.mask & GFX_MASK_CONTROL) ? view->color.control : -1, view->signal, view->signalp);
return 0;
}
-static int
-_gfxwop_dyn_view_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_dyn_view_print(gfxw_widget_t *widget, int indentation) {
return _gfxwop_some_view_print(widget, indentation, "DYNVIEW");
}
-static int
-_gfxwop_pic_view_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_pic_view_print(gfxw_widget_t *widget, int indentation) {
return _gfxwop_some_view_print(widget, indentation, "PICVIEW");
}
-
-static int
-_gfxwop_dyn_view_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
- gfxw_dyn_view_t *wview = (gfxw_dyn_view_t *) widget, *oview;
+static int _gfxwop_dyn_view_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+ gfxw_dyn_view_t *wview = (gfxw_dyn_view_t *)widget, *oview;
if (!GFXW_IS_DYN_VIEW(other))
return 0;
- oview = (gfxw_dyn_view_t *) other;
+ oview = (gfxw_dyn_view_t *)other;
- if (wview->pos.x != oview->pos.x
- || wview->pos.y != oview->pos.y
- || wview->z != oview->z)
+ if (wview->pos.x != oview->pos.x || wview->pos.y != oview->pos.y || wview->z != oview->z)
return 0;
- if (wview->view != oview->view
- || wview->loop != oview->loop
- || wview->cel != oview->cel)
+ if (wview->view != oview->view || wview->loop != oview->loop || wview->cel != oview->cel)
return 0;
if (!_color_equals(wview->color, oview->color))
@@ -936,8 +805,7 @@ _gfxwop_dyn_view_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-static int
-_gfxwop_dyn_view_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
+static int _gfxwop_dyn_view_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
int retval;
gfxw_dyn_view_t *wview = (gfxw_dyn_view_t *) widget, *oview;
if (!GFXW_IS_DYN_VIEW(other))
@@ -960,27 +828,18 @@ _gfxwop_dyn_view_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
return -(wview->sequence - oview->sequence);
}
-
-void
-_gfxw_set_ops_DYNVIEW(gfxw_widget_t *widget) {
- _gfxw_set_ops(GFXW(widget), _gfxwop_dyn_view_draw,
- _gfxwop_basic_free,
- _gfxwop_basic_tag,
- _gfxwop_dyn_view_print,
- _gfxwop_dyn_view_compare_to,
- _gfxwop_dyn_view_equals,
- _gfxwop_basic_superarea_of);
+void _gfxw_set_ops_DYNVIEW(gfxw_widget_t *widget) {
+ _gfxw_set_ops(GFXW(widget), _gfxwop_dyn_view_draw, _gfxwop_basic_free, _gfxwop_basic_tag,
+ _gfxwop_dyn_view_print, _gfxwop_dyn_view_compare_to, _gfxwop_dyn_view_equals, _gfxwop_basic_superarea_of);
}
-void
-_gfxw_set_ops_PICVIEW(gfxw_widget_t *widget) {
+void _gfxw_set_ops_PICVIEW(gfxw_widget_t *widget) {
_gfxw_set_ops_DYNVIEW(widget);
widget->draw = _gfxwop_pic_view_draw;
widget->print = _gfxwop_pic_view_print;
}
-gfxw_dyn_view_t *
-gfxw_new_dyn_view(gfx_state_t *state, Common::Point pos, int z, int view, int loop, int cel, int palette, int priority, int control,
+gfxw_dyn_view_t *gfxw_new_dyn_view(gfx_state_t *state, Common::Point pos, int z, int view, int loop, int cel, int palette, int priority, int control,
gfx_alignment_t halign, gfx_alignment_t valign, int sequence) {
gfxw_dyn_view_t *widget;
int width, height;
@@ -998,12 +857,10 @@ gfxw_new_dyn_view(gfx_state_t *state, Common::Point pos, int z, int view, int lo
return NULL;
}
- widget = (gfxw_dyn_view_t *) _gfxw_new_widget(sizeof(gfxw_dyn_view_t), GFXW_DYN_VIEW);
+ widget = (gfxw_dyn_view_t *)_gfxw_new_widget(sizeof(gfxw_dyn_view_t), GFXW_DYN_VIEW);
widget->pos = pos;
- widget->color.mask =
- ((priority < 0) ? 0 : GFX_MASK_PRIORITY)
- | ((control < 0) ? 0 : GFX_MASK_CONTROL);
+ widget->color.mask = ((priority < 0) ? 0 : GFX_MASK_PRIORITY) | ((control < 0) ? 0 : GFX_MASK_CONTROL);
widget->widget_priority = priority;
widget->color.priority = priority;
widget->color.control = control;
@@ -1035,10 +892,8 @@ gfxw_new_dyn_view(gfx_state_t *state, Common::Point pos, int z, int view, int lo
widget->z = z;
- widget->draw_bounds = gfx_rect(widget->pos.x - xalignmod,
- widget->pos.y - yalignmod - z, width, height);
- widget->bounds = gfx_rect(widget->pos.x - offset.x - xalignmod,
- widget->pos.y - offset.y - yalignmod - z, width, height);
+ widget->draw_bounds = gfx_rect(widget->pos.x - xalignmod, widget->pos.y - yalignmod - z, width, height);
+ widget->bounds = gfx_rect(widget->pos.x - offset.x - xalignmod, widget->pos.y - offset.y - yalignmod - z, width, height);
widget->flags |= GFXW_FLAG_VISIBLE;
@@ -1050,20 +905,17 @@ gfxw_new_dyn_view(gfx_state_t *state, Common::Point pos, int z, int view, int lo
return widget;
}
-/*------------*/
-/**** Text ****/
-/*------------*/
+//*** Text ***
-static int
-_gfxwop_text_free(gfxw_widget_t *widget) {
- gfxw_text_t *text = (gfxw_text_t *) widget;
+static int _gfxwop_text_free(gfxw_widget_t *widget) {
+ gfxw_text_t *text = (gfxw_text_t *)widget;
free(text->text);
+
return _gfxwop_basic_free(widget);
}
-static int
-_gfxwop_text_draw(gfxw_widget_t *widget, Common::Point pos) {
- gfxw_text_t *text = (gfxw_text_t *) widget;
+static int _gfxwop_text_draw(gfxw_widget_t *widget, Common::Point pos) {
+ gfxw_text_t *text = (gfxw_text_t *)widget;
DRAW_ASSERT(widget, GFXW_TEXT);
GFX_ASSERT(gfxop_draw_text(text->visual->gfx_state, text->text_handle, _move_rect(text->bounds, pos)));
@@ -1071,44 +923,36 @@ _gfxwop_text_draw(gfxw_widget_t *widget, Common::Point pos) {
return 0;
}
-static int
-_gfxwop_text_alloc_and_draw(gfxw_widget_t *widget, Common::Point pos) {
- gfxw_text_t *text = (gfxw_text_t *) widget;
+static int _gfxwop_text_alloc_and_draw(gfxw_widget_t *widget, Common::Point pos) {
+ gfxw_text_t *text = (gfxw_text_t *)widget;
DRAW_ASSERT(widget, GFXW_TEXT);
- text->text_handle =
- gfxop_new_text(widget->visual->gfx_state, text->font_nr, text->text, text->bounds.xl,
- text->halign, text->valign, text->color1,
- text->color2, text->bgcolor, text->text_flags);
+ text->text_handle = gfxop_new_text(widget->visual->gfx_state, text->font_nr, text->text, text->bounds.xl,
+ text->halign, text->valign, text->color1, text->color2, text->bgcolor, text->text_flags);
text->draw = _gfxwop_text_draw;
return _gfxwop_text_draw(widget, pos);
}
-
-static int
-_gfxwop_text_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_text_print(gfxw_widget_t *widget, int indentation) {
_gfxw_print_widget(widget, indentation);
sciprintf("TEXT:'%s'", ((gfxw_text_t *)widget)->text);
+
return 0;
}
-
-static int
-_gfxwop_text_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
- gfxw_text_t *wtext = (gfxw_text_t *) widget, *otext;
+static int _gfxwop_text_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+ gfxw_text_t *wtext = (gfxw_text_t *)widget, *otext;
if (other->type != GFXW_TEXT)
return 0;
- otext = (gfxw_text_t *) other;
+ otext = (gfxw_text_t *)other;
- if ((wtext->bounds.x != otext->bounds.x)
- || (wtext->bounds.y != otext->bounds.y))
+ if ((wtext->bounds.x != otext->bounds.x) || (wtext->bounds.y != otext->bounds.y))
return 0;
- if (wtext->halign != otext->halign
- || wtext->valign != otext->valign)
+ if (wtext->halign != otext->halign || wtext->valign != otext->valign)
return 0;
if (wtext->text_flags != otext->text_flags)
@@ -1117,55 +961,42 @@ _gfxwop_text_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
if (wtext->font_nr != otext->font_nr)
return 0;
- /* if (!(_color_equals(wtext->color1, otext->color1)
- && _color_equals(wtext->color2, otext->color2)
- && _color_equals(wtext->bgcolor, otext->bgcolor)))
- return 0; */
+ /* if (!(_color_equals(wtext->color1, otext->color1) && _color_equals(wtext->color2, otext->color2)
+ && _color_equals(wtext->bgcolor, otext->bgcolor)))
+ return 0; */
return 1;
}
-static int
-_gfxwop_text_should_replace(gfxw_widget_t *widget, gfxw_widget_t *other) {
- gfxw_text_t *wtext = (gfxw_text_t *) widget, *otext;
+static int _gfxwop_text_should_replace(gfxw_widget_t *widget, gfxw_widget_t *other) {
+ gfxw_text_t *wtext = (gfxw_text_t *)widget, *otext;
if (other->type != GFXW_TEXT)
return 0;
- otext = (gfxw_text_t *) other;
+ otext = (gfxw_text_t *)other;
return strcmp(wtext->text, otext->text);
}
-
-static int
-_gfxwop_text_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
-
+static int _gfxwop_text_compare_to(gfxw_widget_t *widget, gfxw_widget_t *other) {
return 1;
}
-void
-_gfxw_set_ops_TEXT(gfxw_widget_t *widget) {
- _gfxw_set_ops(GFXW(widget), _gfxwop_text_alloc_and_draw,
- _gfxwop_text_free,
- _gfxwop_basic_tag,
- _gfxwop_text_print,
- _gfxwop_text_compare_to,
- _gfxwop_text_equals,
+void _gfxw_set_ops_TEXT(gfxw_widget_t *widget) {
+ _gfxw_set_ops(GFXW(widget), _gfxwop_text_alloc_and_draw, _gfxwop_text_free, _gfxwop_basic_tag,
+ _gfxwop_text_print, _gfxwop_text_compare_to, _gfxwop_text_equals,
_gfxwop_basic_superarea_of);
widget->should_replace = _gfxwop_text_should_replace;
}
-gfxw_text_t *
-gfxw_new_text(gfx_state_t *state, rect_t area, int font, const char *text, gfx_alignment_t halign,
- gfx_alignment_t valign, gfx_color_t color1, gfx_color_t color2,
- gfx_color_t bgcolor, int text_flags) {
- gfxw_text_t *widget = (gfxw_text_t *)
- _gfxw_new_widget(sizeof(gfxw_text_t), GFXW_TEXT);
+gfxw_text_t *gfxw_new_text(gfx_state_t *state, rect_t area, int font, const char *text, gfx_alignment_t halign,
+ gfx_alignment_t valign, gfx_color_t color1, gfx_color_t color2, gfx_color_t bgcolor, int text_flags) {
+ gfxw_text_t *widget = (gfxw_text_t *)_gfxw_new_widget(sizeof(gfxw_text_t), GFXW_TEXT);
widget->widget_priority = _gfxw_color_get_priority(color1);
widget->font_nr = font;
- widget->text = (char*)sci_malloc(strlen(text) + 1);
+ widget->text = (char *)sci_malloc(strlen(text) + 1);
widget->halign = halign;
widget->valign = valign;
widget->color1 = color1;
@@ -1176,10 +1007,8 @@ gfxw_new_text(gfx_state_t *state, rect_t area, int font, const char *text, gfx_a
strcpy(widget->text, text);
- gfxop_get_text_params(state, font, text, area.xl, &(widget->width),
- &(widget->height), text_flags,
- &(widget->lines_nr), &(widget->lineheight),
- &(widget->lastline_width));
+ gfxop_get_text_params(state, font, text, area.xl, &(widget->width), &(widget->height), text_flags,
+ &(widget->lines_nr), &(widget->lineheight), &(widget->lastline_width));
/* FIXME: Window is too big
area.x += _calc_needmove(halign, area.xl, widget->width);
@@ -1200,10 +1029,7 @@ gfxw_new_text(gfx_state_t *state, rect_t area, int font, const char *text, gfx_a
return widget;
}
-
-void
-gfxw_text_info(gfx_state_t *state, gfxw_text_t *text, int *lines,
- int *lineheight, int *offset) {
+void gfxw_text_info(gfx_state_t *state, gfxw_text_t *text, int *lines, int *lineheight, int *offset) {
if (lines)
*lines = text->lines_nr;
if (lineheight)
@@ -1212,31 +1038,19 @@ gfxw_text_info(gfx_state_t *state, gfxw_text_t *text, int *lines,
*offset = text->lastline_width;
}
+//-- Container types --
-/***********************/
-/*-- Container types --*/
-/***********************/
-
-static int
-_gfxwop_container_add_dirty_rel(gfxw_container_t *cont, rect_t rect, int propagate) {
+static int _gfxwop_container_add_dirty_rel(gfxw_container_t *cont, rect_t rect, int propagate) {
DDIRTY(stderr, "->container_add_dirty_rel(%d,%d,%d,%d, %d)\n", GFX_PRINT_RECT(rect), propagate);
return cont->add_dirty_abs(cont, _move_rect(rect, Common::Point(cont->zone.x, cont->zone.y)), propagate);
}
-static inline void
-_gfxw_set_container_ops(gfxw_container_t *container, gfxw_point_op *draw, gfxw_op *free, gfxw_op *tag,
+static inline void _gfxw_set_container_ops(gfxw_container_t *container, gfxw_point_op *draw, gfxw_op *free, gfxw_op *tag,
gfxw_op_int *print, gfxw_bin_op *compare_to, gfxw_bin_op *equals,
gfxw_bin_op *superarea_of, gfxw_visual_op *set_visual,
gfxw_unary_container_op *free_tagged, gfxw_unary_container_op *free_contents,
gfxw_rect_op *add_dirty, gfxw_container_op *add) {
- _gfxw_set_ops(GFXW(container),
- draw,
- free,
- tag,
- print,
- compare_to,
- equals,
- superarea_of);
+ _gfxw_set_ops(GFXW(container), draw, free, tag, print, compare_to, equals, superarea_of);
container->free_tagged = free_tagged;
container->free_contents = free_contents;
@@ -1246,8 +1060,7 @@ _gfxw_set_container_ops(gfxw_container_t *container, gfxw_point_op *draw, gfxw_o
container->set_visual = set_visual;
}
-static int
-_w_gfxwop_container_print_contents(const char *name, gfxw_widget_t *widget, int indentation) {
+static int _w_gfxwop_container_print_contents(const char *name, gfxw_widget_t *widget, int indentation) {
gfxw_widget_t *seeker = widget;
indent(indentation);
@@ -1263,10 +1076,9 @@ _w_gfxwop_container_print_contents(const char *name, gfxw_widget_t *widget, int
return 0;
}
-static int
-_w_gfxwop_container_print(gfxw_widget_t *widget, int indentation) {
+static int _w_gfxwop_container_print(gfxw_widget_t *widget, int indentation) {
gfx_dirty_rect_t *dirty;
- gfxw_container_t *container = (gfxw_container_t *) widget;
+ gfxw_container_t *container = (gfxw_container_t *)widget;
if (!GFXW_IS_CONTAINER(widget)) {
GFXERROR("_w_gfxwop_container_print() called on type %d widget\n", widget->type);
return 1;
@@ -1281,8 +1093,7 @@ _w_gfxwop_container_print(gfxw_widget_t *widget, int indentation) {
dirty = container->dirty;
while (dirty) {
indent(indentation + 1);
- sciprintf("dirty(%d,%d, (%dx%d))\n",
- dirty->rect.x, dirty->rect.y, dirty->rect.xl, dirty->rect.yl);
+ sciprintf("dirty(%d,%d, (%dx%d))\n", dirty->rect.x, dirty->rect.y, dirty->rect.xl, dirty->rect.yl);
dirty = dirty->next;
}
@@ -1291,12 +1102,8 @@ _w_gfxwop_container_print(gfxw_widget_t *widget, int indentation) {
return 0;
}
-
-
-gfxw_container_t *
-_gfxw_new_container_widget(rect_t area, int size, gfxw_widget_type_t type) {
- gfxw_container_t *widget = (gfxw_container_t *)
- _gfxw_new_widget(size, type);
+gfxw_container_t *_gfxw_new_container_widget(rect_t area, int size, gfxw_widget_type_t type) {
+ gfxw_container_t *widget = (gfxw_container_t *)_gfxw_new_widget(size, type);
widget->bounds = widget->zone = area;
widget->contents = NULL;
@@ -1308,28 +1115,24 @@ _gfxw_new_container_widget(rect_t area, int size, gfxw_widget_type_t type) {
return widget;
}
-
-static void
-recursively_free_dirty_rects(gfx_dirty_rect_t *dirty) {
+static void recursively_free_dirty_rects(gfx_dirty_rect_t *dirty) {
if (dirty) {
recursively_free_dirty_rects(dirty->next);
free(dirty);
}
}
-
int ti = 0;
-static inline int
-_gfxw_dirty_rect_overlaps_normal_rect(rect_t port_zone, rect_t bounds, rect_t dirty) {
+static inline int _gfxw_dirty_rect_overlaps_normal_rect(rect_t port_zone, rect_t bounds, rect_t dirty) {
bounds.x += port_zone.x;
bounds.y += port_zone.y;
+
return gfx_rects_overlap(bounds, dirty);
}
-static int
-_gfxwop_container_draw_contents(gfxw_widget_t *widget, gfxw_widget_t *contents) {
- gfxw_container_t *container = (gfxw_container_t *) widget;
+static int _gfxwop_container_draw_contents(gfxw_widget_t *widget, gfxw_widget_t *contents) {
+ gfxw_container_t *container = (gfxw_container_t *)widget;
gfx_dirty_rect_t *dirty = container->dirty;
gfx_state_t *gfx_state = (widget->visual) ? widget->visual->gfx_state : ((gfxw_visual_t *) widget)->gfx_state;
int draw_ports;
@@ -1343,10 +1146,10 @@ _gfxwop_container_draw_contents(gfxw_widget_t *widget, gfxw_widget_t *contents)
while (seeker) {
if (_gfxw_dirty_rect_overlaps_normal_rect(GFXW_IS_CONTAINER(seeker) ? nullzone : container->zone,
- /* Containers have absolute coordinates, reflect this. */
+ // Containers have absolute coordinates, reflect this.
seeker->bounds, dirty->rect)) {
- if (GFXW_IS_CONTAINER(seeker)) {/* Propagate dirty rectangles /upwards/ */
+ if (GFXW_IS_CONTAINER(seeker)) {// Propagate dirty rectangles /upwards/
DDIRTY(stderr, "container_draw_contents: propagate upwards (%d,%d,%d,%d ,0)\n", GFX_PRINT_RECT(dirty->rect));
((gfxw_container_t *)seeker)->add_dirty_abs((gfxw_container_t *)seeker, dirty->rect, 0);
}
@@ -1360,13 +1163,11 @@ _gfxwop_container_draw_contents(gfxw_widget_t *widget, gfxw_widget_t *contents)
dirty = dirty->next;
}
- /* The draw loop is executed twice: Once for normal data, and once for ports. */
+ // The draw loop is executed twice: Once for normal data, and once for ports.
for (draw_ports = 0; draw_ports < 2; draw_ports++) {
-
dirty = container->dirty;
while (dirty) {
-
gfxw_widget_t *seeker = contents;
while (seeker && (draw_ports || !GFXW_IS_PORT(seeker))) {
rect_t small_rect;
@@ -1395,14 +1196,13 @@ _gfxwop_container_draw_contents(gfxw_widget_t *widget, gfxw_widget_t *contents)
dirty = dirty->next;
}
}
- /* Remember that the dirty rects should be freed afterwards! */
+ // Remember that the dirty rects should be freed afterwards!
return 0;
}
-static int
-_gfxwop_container_free(gfxw_widget_t *widget) {
- gfxw_container_t *container = (gfxw_container_t *) widget;
+static int _gfxwop_container_free(gfxw_widget_t *widget) {
+ gfxw_container_t *container = (gfxw_container_t *)widget;
gfxw_widget_t *seeker = container->contents;
while (seeker) {
@@ -1417,8 +1217,7 @@ _gfxwop_container_free(gfxw_widget_t *widget) {
return _gfxwop_basic_free(widget);
}
-static int
-_gfxwop_container_tag(gfxw_widget_t *widget) {
+static int _gfxwop_container_tag(gfxw_widget_t *widget) {
gfxw_container_t *container = (gfxw_container_t *) widget;
gfxw_widget_t *seeker = container->contents;
@@ -1426,12 +1225,11 @@ _gfxwop_container_tag(gfxw_widget_t *widget) {
seeker->tag(seeker);
seeker = seeker->next;
}
+
return 0;
}
-
-static int
-_w_gfxwop_container_set_visual_contents(gfxw_widget_t *contents, gfxw_visual_t *visual) {
+static int _w_gfxwop_container_set_visual_contents(gfxw_widget_t *contents, gfxw_visual_t *visual) {
while (contents) {
contents->set_visual(contents, visual);
contents = contents->next;
@@ -1439,8 +1237,7 @@ _w_gfxwop_container_set_visual_contents(gfxw_widget_t *contents, gfxw_visual_t *
return 0;
}
-static int
-_gfxwop_container_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
+static int _gfxwop_container_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
gfxw_container_t *container = (gfxw_container_t *) widget;
container->visual = visual;
@@ -1454,8 +1251,7 @@ _gfxwop_container_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
return _w_gfxwop_container_set_visual_contents(container->contents, visual);
}
-static int
-_gfxwop_container_free_tagged(gfxw_container_t *container) {
+static int _gfxwop_container_free_tagged(gfxw_container_t *container) {
gfxw_widget_t *seekerp = (container->contents);
while (seekerp) {
@@ -1463,15 +1259,15 @@ _gfxwop_container_free_tagged(gfxw_container_t *container) {
if (redshirt->flags & GFXW_FLAG_TAGGED) {
seekerp = (redshirt->next);
- redshirt->widfree(redshirt); /* He's dead, Jim. */
+ redshirt->widfree(redshirt);
} else
seekerp = (seekerp)->next;
}
+
return 0;
}
-static int
-_gfxwop_container_free_contents(gfxw_container_t *container) {
+static int _gfxwop_container_free_contents(gfxw_container_t *container) {
gfxw_widget_t *seeker = container->contents;
while (seeker) {
@@ -1482,16 +1278,14 @@ _gfxwop_container_free_contents(gfxw_container_t *container) {
return 0;
}
-static void
-_gfxw_dirtify_container(gfxw_container_t *container, gfxw_widget_t *widget) {
+static void _gfxw_dirtify_container(gfxw_container_t *container, gfxw_widget_t *widget) {
if (GFXW_IS_CONTAINER(widget))
container->add_dirty_abs(GFXWC(container), widget->bounds, 1);
else
container->add_dirty_rel(GFXWC(container), widget->bounds, 1);
}
-static int
-_parentize_widget(gfxw_container_t *container, gfxw_widget_t *widget) {
+static int _parentize_widget(gfxw_container_t *container, gfxw_widget_t *widget) {
if (widget->parent) {
GFXERROR("_gfxwop_container_add(): Attempt to give second parent node to widget!\nWidget:");
widget->print(GFXW(widget), 3);
@@ -1511,26 +1305,22 @@ _parentize_widget(gfxw_container_t *container, gfxw_widget_t *widget) {
return 0;
}
-static int
-_gfxw_container_id_equals(gfxw_container_t *container, gfxw_widget_t *widget) {
+static int _gfxw_container_id_equals(gfxw_container_t *container, gfxw_widget_t *widget) {
gfxw_widget_t **seekerp = &(container->contents);
if (GFXW_IS_PORT(widget))
- return 0; /* Don't match ports */
+ return 0;
if (widget->ID == GFXW_NO_ID)
return 0;
- while (*seekerp
- && ((*seekerp)->ID != widget->ID
- || (*seekerp)->subID != widget->subID))
+ while (*seekerp && ((*seekerp)->ID != widget->ID || (*seekerp)->subID != widget->subID))
seekerp = &((*seekerp)->next);
if (!*seekerp)
return 0;
- if ((*seekerp)->equals(*seekerp, widget)
- && !(*seekerp)->should_replace(*seekerp, widget)) {
+ if ((*seekerp)->equals(*seekerp, widget) && !(*seekerp)->should_replace(*seekerp, widget)) {
widget->widfree(widget);
(*seekerp)->flags &= ~GFXW_FLAG_TAGGED;
return 1;
@@ -1541,12 +1331,10 @@ _gfxw_container_id_equals(gfxw_container_t *container, gfxw_widget_t *widget) {
}
}
-
-static int
-_gfxwop_container_add_dirty(gfxw_container_t *container, rect_t dirty, int propagate) {
+static int _gfxwop_container_add_dirty(gfxw_container_t *container, rect_t dirty, int propagate) {
#if 0
- /* This code has been disabled because containers may contain sub-containers with
- ** bounds greater than their own. */
+ // This code has been disabled because containers may contain sub-containers with
+ // bounds greater than their own.
if (_gfxop_clip(&dirty, container->bounds))
return 0;
#endif
@@ -1556,16 +1344,14 @@ _gfxwop_container_add_dirty(gfxw_container_t *container, rect_t dirty, int propa
return 0;
}
-
-static int
-_gfxwop_container_add(gfxw_container_t *container, gfxw_widget_t *widget) {
+static int _gfxwop_container_add(gfxw_container_t *container, gfxw_widget_t *widget) {
if (_gfxw_container_id_equals(container, widget))
return 0;
if (_parentize_widget(container, widget))
return 1;
- if (!(GFXW_IS_LIST(widget) && (!GFXWC(widget)->contents))) { /* Don't dirtify self on empty lists */
+ if (!(GFXW_IS_LIST(widget) && (!GFXWC(widget)->contents))) { // Don't dirtify self on empty lists
DDIRTY(stderr, "container_add: dirtify DOWNWARDS (%d,%d,%d,%d, 1)\n", GFX_PRINT_RECT(widget->bounds));
_gfxw_dirtify_container(container, widget);
}
@@ -1576,57 +1362,51 @@ _gfxwop_container_add(gfxw_container_t *container, gfxw_widget_t *widget) {
return 0;
}
-/*------------------------------*/
-/**** Lists and sorted lists ****/
-/*------------------------------*/
+//*** Lists and sorted lists ***
-static int
-_gfxwop_list_draw(gfxw_widget_t *list, Common::Point pos) {
+static int _gfxwop_list_draw(gfxw_widget_t *list, Common::Point pos) {
DRAW_ASSERT(list, GFXW_LIST);
_gfxwop_container_draw_contents(list, ((gfxw_list_t *)list)->contents);
recursively_free_dirty_rects(GFXWC(list)->dirty);
GFXWC(list)->dirty = NULL;
list->flags &= ~GFXW_FLAG_DIRTY;
+
return 0;
}
-static int
-_gfxwop_sorted_list_draw(gfxw_widget_t *list, Common::Point pos) {
+static int _gfxwop_sorted_list_draw(gfxw_widget_t *list, Common::Point pos) {
DRAW_ASSERT(list, GFXW_SORTED_LIST);
_gfxwop_container_draw_contents(list, ((gfxw_list_t *)list)->contents);
recursively_free_dirty_rects(GFXWC(list)->dirty);
GFXWC(list)->dirty = NULL;
+
return 0;
}
-static inline int
-_w_gfxwop_list_print(gfxw_widget_t *list, const char *name, int indentation) {
+static inline int _w_gfxwop_list_print(gfxw_widget_t *list, const char *name, int indentation) {
_gfxw_print_widget(list, indentation);
sciprintf(name);
+
return _w_gfxwop_container_print(list, indentation);
}
-static int
-_gfxwop_list_print(gfxw_widget_t *list, int indentation) {
+static int _gfxwop_list_print(gfxw_widget_t *list, int indentation) {
return _w_gfxwop_list_print(list, "LIST", indentation);
}
-static int
-_gfxwop_sorted_list_print(gfxw_widget_t *list, int indentation) {
+static int _gfxwop_sorted_list_print(gfxw_widget_t *list, int indentation) {
return _w_gfxwop_list_print(list, "SORTED_LIST", indentation);
}
-/* --- */
#if 0
struct gfxw_widget_list {
gfxw_widget_t *widget;
struct gfxw_widget_list *next;
};
-static struct gfxw_widtet_list *
- _gfxw_make_widget_list_recursive(gfxw_widget_t *widget) {
+static struct gfxw_widtet_list *_gfxw_make_widget_list_recursive(gfxw_widget_t *widget) {
gfxw_widget_list *node;
if (!widget)
@@ -1639,18 +1419,13 @@ static struct gfxw_widtet_list *
return node;
}
-static struct gfxw_widget_list *
- _gfxw_make_widget_list(gfxw_container_t *container) {
+static struct gfxw_widget_list *_gfxw_make_widget_list(gfxw_container_t *container) {
return _gfxw_make_widget_list_recursive(container->contents);
}
#endif
-/* --- */
-
-static int
-_gfxwop_list_equals(gfxw_widget_t *widget, gfxw_widget_t *other)
-/* Requires identical order of list elements. */
-{
+static int _gfxwop_list_equals(gfxw_widget_t *widget, gfxw_widget_t *other) {
+ // Requires identical order of list elements.
gfxw_list_t *wlist, *olist;
if (widget->type != other->type)
@@ -1663,8 +1438,8 @@ _gfxwop_list_equals(gfxw_widget_t *widget, gfxw_widget_t *other)
return 0;
}
- wlist = (gfxw_list_t *) widget;
- olist = (gfxw_list_t *) other;
+ wlist = (gfxw_list_t *)widget;
+ olist = (gfxw_list_t *)other;
if (memcmp(&(wlist->bounds), &(olist->bounds), sizeof(rect_t)))
return 0;
@@ -1673,7 +1448,6 @@ _gfxwop_list_equals(gfxw_widget_t *widget, gfxw_widget_t *other)
other = olist->contents;
while (widget && other) {
-
if (!(widget->equals(widget, other) && !widget->should_replace(widget, other)))
return 0;
@@ -1681,12 +1455,11 @@ _gfxwop_list_equals(gfxw_widget_t *widget, gfxw_widget_t *other)
other = other->next;
}
- return (!widget && !other); /* True if both are finished now */
+ return (!widget && !other); // True if both are finished now
}
-static int
-_gfxwop_list_add_dirty(gfxw_container_t *container, rect_t dirty, int propagate) {
- /* Lists add dirty boxes to both themselves and their parenting port/visual */
+static int _gfxwop_list_add_dirty(gfxw_container_t *container, rect_t dirty, int propagate) {
+ // Lists add dirty boxes to both themselves and their parenting port/visual
container->flags |= GFXW_FLAG_DIRTY;
@@ -1700,11 +1473,8 @@ _gfxwop_list_add_dirty(gfxw_container_t *container, rect_t dirty, int propagate)
return _gfxwop_container_add_dirty(container, dirty, propagate);
}
-/* static inline */
-int
-_gfxwop_ordered_add(gfxw_container_t *container, gfxw_widget_t *widget, int compare_all)
-/* O(n) */
-{
+int _gfxwop_ordered_add(gfxw_container_t *container, gfxw_widget_t *widget, int compare_all) {
+ // O(n)
gfxw_widget_t **seekerp = &(container->contents);
if (widget->next) {
@@ -1725,11 +1495,11 @@ _gfxwop_ordered_add(gfxw_container_t *container, gfxw_widget_t *widget, int comp
if (widget->equals(GFXW(widget), GFXW(*seekerp))) {
if (compare_all) {
if ((*seekerp)->visual)
- (*seekerp)->widfree(GFXW(*seekerp)); /* If it's a fresh widget */
+ (*seekerp)->widfree(GFXW(*seekerp)); // If it's a fresh widget
else
gfxw_annihilate(GFXW(*seekerp));
- return _gfxwop_ordered_add(container, widget, compare_all); /* We might have destroyed the container's contents */
+ return _gfxwop_ordered_add(container, widget, compare_all); // We might have destroyed the container's contents
} else {
widget->next = (*seekerp)->next;
(*seekerp)->widfree(GFXW(*seekerp));
@@ -1748,32 +1518,22 @@ _gfxwop_ordered_add(gfxw_container_t *container, gfxw_widget_t *widget, int comp
return _parentize_widget(container, widget);
}
-static int
-_gfxwop_sorted_list_add(gfxw_container_t *container, gfxw_widget_t *widget)
-/* O(n) */
-{
+static int _gfxwop_sorted_list_add(gfxw_container_t *container, gfxw_widget_t *widget) {
+ // O(n)
return _gfxwop_ordered_add(container, widget, 0);
}
-void
-_gfxw_set_ops_LIST(gfxw_container_t *list, char sorted) {
- _gfxw_set_container_ops((gfxw_container_t *) list,
- sorted ? _gfxwop_sorted_list_draw : _gfxwop_list_draw,
- _gfxwop_container_free,
- _gfxwop_container_tag,
+void _gfxw_set_ops_LIST(gfxw_container_t *list, char sorted) {
+ _gfxw_set_container_ops((gfxw_container_t *)list, sorted ? _gfxwop_sorted_list_draw : _gfxwop_list_draw,
+ _gfxwop_container_free, _gfxwop_container_tag,
sorted ? _gfxwop_sorted_list_print : _gfxwop_list_print,
- _gfxwop_basic_compare_to,
- sorted ? _gfxwop_basic_equals : _gfxwop_list_equals,
- _gfxwop_basic_superarea_of,
- _gfxwop_container_set_visual,
- _gfxwop_container_free_tagged,
- _gfxwop_container_free_contents,
- _gfxwop_list_add_dirty,
- sorted ? _gfxwop_sorted_list_add : _gfxwop_container_add);
-}
-
-gfxw_list_t *
-gfxw_new_list(rect_t area, int sorted) {
+ _gfxwop_basic_compare_to, sorted ? _gfxwop_basic_equals : _gfxwop_list_equals,
+ _gfxwop_basic_superarea_of, _gfxwop_container_set_visual,
+ _gfxwop_container_free_tagged, _gfxwop_container_free_contents,
+ _gfxwop_list_add_dirty, sorted ? _gfxwop_sorted_list_add : _gfxwop_container_add);
+}
+
+gfxw_list_t *gfxw_new_list(rect_t area, int sorted) {
gfxw_list_t *list = (gfxw_list_t *) _gfxw_new_container_widget(area, sizeof(gfxw_list_t),
sorted ? GFXW_SORTED_LIST : GFXW_LIST);
@@ -1782,13 +1542,9 @@ gfxw_new_list(rect_t area, int sorted) {
return list;
}
+//*** Visuals ***
-/*---------------*/
-/**** Visuals ****/
-/*---------------*/
-
-static int
-_gfxwop_visual_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_visual_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_visual_t *visual = (gfxw_visual_t *) widget;
gfx_dirty_rect_t *dirty = visual->dirty;
DRAW_ASSERT(widget, GFXW_VISUAL);
@@ -1815,8 +1571,7 @@ _gfxwop_visual_draw(gfxw_widget_t *widget, Common::Point pos) {
return 0;
}
-static int
-_gfxwop_visual_free(gfxw_widget_t *widget) {
+static int _gfxwop_visual_free(gfxw_widget_t *widget) {
gfxw_visual_t *visual = (gfxw_visual_t *) widget;
gfxw_port_t **portrefs;
int retval;
@@ -1832,11 +1587,11 @@ _gfxwop_visual_free(gfxw_widget_t *widget) {
retval = _gfxwop_container_free(widget);
free(portrefs);
+
return 0;
}
-static int
-_gfxwop_visual_print(gfxw_widget_t *widget, int indentation) {
+static int _gfxwop_visual_print(gfxw_widget_t *widget, int indentation) {
int i;
int comma = 0;
gfxw_visual_t *visual = (gfxw_visual_t *) widget;
@@ -1863,80 +1618,65 @@ _gfxwop_visual_print(gfxw_widget_t *widget, int indentation) {
return _w_gfxwop_container_print(widget, indentation);
}
-static int
-_gfxwop_visual_set_visual(gfxw_widget_t *self, gfxw_visual_t *visual) {
+static int _gfxwop_visual_set_visual(gfxw_widget_t *self, gfxw_visual_t *visual) {
if (self != GFXW(visual)) {
GFXWARN("Attempt to set a visual's parent visual to something else");
} else {
GFXWARN("Attempt to set a visual's parent visual");
}
+
return 1;
}
-void
-_gfxw_set_ops_VISUAL(gfxw_container_t *visual) {
- _gfxw_set_container_ops((gfxw_container_t *) visual,
- _gfxwop_visual_draw,
- _gfxwop_visual_free,
- _gfxwop_container_tag,
- _gfxwop_visual_print,
- _gfxwop_basic_compare_to,
- _gfxwop_basic_equals,
- _gfxwop_basic_superarea_of,
- _gfxwop_visual_set_visual,
- _gfxwop_container_free_tagged,
- _gfxwop_container_free_contents,
- _gfxwop_container_add_dirty,
- _gfxwop_container_add);
-}
-
-gfxw_visual_t *
-gfxw_new_visual(gfx_state_t *state, int font) {
+void _gfxw_set_ops_VISUAL(gfxw_container_t *visual) {
+ _gfxw_set_container_ops((gfxw_container_t *)visual, _gfxwop_visual_draw, _gfxwop_visual_free,
+ _gfxwop_container_tag, _gfxwop_visual_print, _gfxwop_basic_compare_to,
+ _gfxwop_basic_equals, _gfxwop_basic_superarea_of, _gfxwop_visual_set_visual,
+ _gfxwop_container_free_tagged, _gfxwop_container_free_contents,
+ _gfxwop_container_add_dirty, _gfxwop_container_add);
+}
+
+gfxw_visual_t *gfxw_new_visual(gfx_state_t *state, int font) {
gfxw_visual_t *visual = (gfxw_visual_t *) _gfxw_new_container_widget(gfx_rect(0, 0, 320, 200), sizeof(gfxw_visual_t), GFXW_VISUAL);
visual->font_nr = font;
visual->gfx_state = state;
- visual->port_refs = (struct _gfxw_port**)sci_calloc(sizeof(gfxw_port_t), visual->port_refs_nr = 16);
+ visual->port_refs = (struct _gfxw_port **)sci_calloc(sizeof(gfxw_port_t), visual->port_refs_nr = 16);
_gfxw_set_ops_VISUAL(GFXWC(visual));
return visual;
}
-
-static int
-_visual_find_free_ID(gfxw_visual_t *visual) {
+static int _visual_find_free_ID(gfxw_visual_t *visual) {
int id = 0;
int newports = 16;
while (visual->port_refs[id] && id < visual->port_refs_nr)
id++;
- if (id == visual->port_refs_nr) {/* Out of ports? */
+ if (id == visual->port_refs_nr) { // Out of ports?
visual->port_refs = (struct _gfxw_port**)sci_realloc(visual->port_refs, visual->port_refs_nr += newports);
- memset(visual->port_refs + id, 0, newports * sizeof(gfxw_port_t *)); /* Clear new port refs */
+ memset(visual->port_refs + id, 0, newports * sizeof(gfxw_port_t *)); // Clear new port refs
}
return id;
}
-static int
-_gfxwop_add_dirty_rects(gfxw_container_t *dest, gfx_dirty_rect_t *src) {
+static int _gfxwop_add_dirty_rects(gfxw_container_t *dest, gfx_dirty_rect_t *src) {
DDIRTY(stderr, "Adding multiple dirty to #%d\n", dest->ID);
if (src) {
dest->dirty = gfxdr_add_dirty(dest->dirty, src->rect, GFXW_DIRTY_STRATEGY);
_gfxwop_add_dirty_rects(dest, src->next);
}
+
return 0;
}
-/*-------------*/
-/**** Ports ****/
-/*-------------*/
+//*** Ports ***
-static int
-_gfxwop_port_draw(gfxw_widget_t *widget, Common::Point pos) {
+static int _gfxwop_port_draw(gfxw_widget_t *widget, Common::Point pos) {
gfxw_port_t *port = (gfxw_port_t *) widget;
DRAW_ASSERT(widget, GFXW_PORT);
@@ -1955,11 +1695,11 @@ _gfxwop_port_draw(gfxw_widget_t *widget, Common::Point pos) {
recursively_free_dirty_rects(port->dirty);
port->dirty = NULL;
widget->flags &= ~GFXW_FLAG_DIRTY;
+
return 0;
}
-static int
-_gfxwop_port_free(gfxw_widget_t *widget) {
+static int _gfxwop_port_free(gfxw_widget_t *widget) {
gfxw_port_t *port = (gfxw_port_t *) widget;
if (port->visual) {
@@ -1972,9 +1712,9 @@ _gfxwop_port_free(gfxw_widget_t *widget) {
}
if (visual->port_refs[ID] != port) {
- GFXWARN("While freeing port %d: Port is at %p, but port list indicates %p",
- ID, (void *)port, (void *)visual->port_refs[ID]);
- } else visual->port_refs[ID] = NULL;
+ GFXWARN("While freeing port %d: Port is at %p, but port list indicates %p", ID, (void *)port, (void *)visual->port_refs[ID]);
+ } else
+ visual->port_refs[ID] = NULL;
}
@@ -1984,9 +1724,8 @@ _gfxwop_port_free(gfxw_widget_t *widget) {
return _gfxwop_container_free(widget);
}
-static int
-_gfxwop_port_print(gfxw_widget_t *widget, int indentation) {
- gfxw_port_t *port = (gfxw_port_t *) widget;
+static int _gfxwop_port_print(gfxw_widget_t *widget, int indentation) {
+ gfxw_port_t *port = (gfxw_port_t *)widget;
_gfxw_print_widget(widget, indentation);
sciprintf("PORT");
@@ -1994,12 +1733,11 @@ _gfxwop_port_print(gfxw_widget_t *widget, int indentation) {
if (port->gray_text)
sciprintf(" (gray)");
_w_gfxwop_container_print(GFXW(port), indentation);
- return _w_gfxwop_container_print_contents("decorations", GFXW(port->decorations), indentation);
+ return _w_gfxwop_container_print_contents("decorations", GFXW(port->decorations), indentation);
}
-static int
-_gfxwop_port_superarea_of(gfxw_widget_t *self, gfxw_widget_t *other) {
+static int _gfxwop_port_superarea_of(gfxw_widget_t *self, gfxw_widget_t *other) {
gfxw_port_t *port = (gfxw_port_t *) self;
if (!port->port_bg)
@@ -2008,8 +1746,7 @@ _gfxwop_port_superarea_of(gfxw_widget_t *self, gfxw_widget_t *other) {
return port->port_bg->superarea_of(port->port_bg, other);
}
-static int
-_gfxwop_port_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
+static int _gfxwop_port_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
gfxw_list_t *decorations = ((gfxw_port_t *) widget)->decorations;
widget->visual = visual;
@@ -2023,8 +1760,7 @@ _gfxwop_port_set_visual(gfxw_widget_t *widget, gfxw_visual_t *visual) {
return _gfxwop_container_set_visual(widget, visual);
}
-static int
-_gfxwop_port_add_dirty(gfxw_container_t *widget, rect_t dirty, int propagate) {
+static int _gfxwop_port_add_dirty(gfxw_container_t *widget, rect_t dirty, int propagate) {
gfxw_port_t *self = (gfxw_port_t *) widget;
self->flags |= GFXW_FLAG_DIRTY;
@@ -2035,11 +1771,11 @@ _gfxwop_port_add_dirty(gfxw_container_t *widget, rect_t dirty, int propagate) {
DDIRTY(stderr, "dirty= (%d,%d,%d,%d) bounds (%d,%d,%d,%d)\n", dirty.x, dirty.x, dirty.xl, dirty.yl,
widget->bounds.x, widget->bounds.y, widget->bounds.xl, widget->bounds.yl);
#if 0
- /* FIXME: This is a worthwhile optimization */
+ // FIXME: This is a worthwhile optimization
if (self->port_bg) {
gfxw_widget_t foo;
- foo.bounds = dirty; /* Yeah, sub-elegant, I know */
+ foo.bounds = dirty; // Yeah, sub-elegant, I know
foo.bounds.x -= self->zone.x;
foo.bounds.y -= self->zone.y;
if (self->port_bg->superarea_of(self->port_bg, &foo)) {
@@ -2051,7 +1787,7 @@ _gfxwop_port_add_dirty(gfxw_container_t *widget, rect_t dirty, int propagate) {
}
return 0;
}
- } /* else propagate to the parent, since we're not 'catching' the dirty rect */
+ } // else propagate to the parent, since we're not 'catching' the dirty rect
#endif
if (propagate)
@@ -2063,34 +1799,20 @@ _gfxwop_port_add_dirty(gfxw_container_t *widget, rect_t dirty, int propagate) {
return 0;
}
-static int
-_gfxwop_port_add(gfxw_container_t *container, gfxw_widget_t *widget)
-/* O(n) */
-{
+static int _gfxwop_port_add(gfxw_container_t *container, gfxw_widget_t *widget) {
+ // O(n)
return _gfxwop_ordered_add(container, widget, 1);
}
-void
-_gfxw_set_ops_PORT(gfxw_container_t *widget) {
- _gfxw_set_container_ops((gfxw_container_t *) widget,
- _gfxwop_port_draw,
- _gfxwop_port_free,
- _gfxwop_container_tag,
- _gfxwop_port_print,
- _gfxwop_basic_compare_to,
- _gfxwop_basic_equals,
- _gfxwop_port_superarea_of,
- _gfxwop_port_set_visual,
- _gfxwop_container_free_tagged,
- _gfxwop_container_free_contents,
- _gfxwop_port_add_dirty,
- _gfxwop_port_add);
-}
-
-gfxw_port_t *
-gfxw_new_port(gfxw_visual_t *visual, gfxw_port_t *predecessor, rect_t area, gfx_color_t fgcolor, gfx_color_t bgcolor) {
- gfxw_port_t *widget = (gfxw_port_t *)
- _gfxw_new_container_widget(area, sizeof(gfxw_port_t), GFXW_PORT);
+void _gfxw_set_ops_PORT(gfxw_container_t *widget) {
+ _gfxw_set_container_ops((gfxw_container_t *)widget, _gfxwop_port_draw, _gfxwop_port_free, _gfxwop_container_tag,
+ _gfxwop_port_print, _gfxwop_basic_compare_to, _gfxwop_basic_equals, _gfxwop_port_superarea_of,
+ _gfxwop_port_set_visual, _gfxwop_container_free_tagged, _gfxwop_container_free_contents,
+ _gfxwop_port_add_dirty, _gfxwop_port_add);
+}
+
+gfxw_port_t *gfxw_new_port(gfxw_visual_t *visual, gfxw_port_t *predecessor, rect_t area, gfx_color_t fgcolor, gfx_color_t bgcolor) {
+ gfxw_port_t *widget = (gfxw_port_t *)_gfxw_new_container_widget(area, sizeof(gfxw_port_t), GFXW_PORT);
VERIFY_WIDGET(visual);
@@ -2117,8 +1839,7 @@ void gfxw_port_auto_restore_background(gfxw_visual_t *visual, gfxw_port_t *windo
window->restore_snap = gfxw_make_snapshot(visual, auto_rect);
}
-gfxw_port_t *
-gfxw_remove_port(gfxw_visual_t *visual, gfxw_port_t *port) {
+gfxw_port_t *gfxw_remove_port(gfxw_visual_t *visual, gfxw_port_t *port) {
gfxw_port_t *parent;
VERIFY_WIDGET(visual);
VERIFY_WIDGET(port);
@@ -2128,7 +1849,7 @@ gfxw_remove_port(gfxw_visual_t *visual, gfxw_port_t *port) {
return NULL;
}
- parent = (gfxw_port_t *) port->parent;
+ parent = (gfxw_port_t *)port->parent;
if (port->port_flags & WINDOW_FLAG_AUTO_RESTORE)
gfxw_restore_snapshot(visual, port->restore_snap);
@@ -2136,23 +1857,19 @@ gfxw_remove_port(gfxw_visual_t *visual, gfxw_port_t *port) {
return parent;
while (parent && !GFXW_IS_PORT(parent))
- parent = (gfxw_port_t *) parent->parent; /* Ascend through ancestors */
+ parent = (gfxw_port_t *)parent->parent; // Ascend through ancestors
return parent;
}
-
-gfxw_port_t *
-gfxw_find_port(gfxw_visual_t *visual, int ID) {
+gfxw_port_t *gfxw_find_port(gfxw_visual_t *visual, int ID) {
if (ID < 0 || ID >= visual->port_refs_nr)
return NULL;
return visual->port_refs[ID];
}
-
-gfxw_port_t *
-gfxw_find_default_port(gfxw_visual_t *visual) {
+gfxw_port_t *gfxw_find_default_port(gfxw_visual_t *visual) {
int id = visual->port_refs_nr;
while (id--) {
@@ -2165,11 +1882,9 @@ gfxw_find_default_port(gfxw_visual_t *visual) {
return NULL;
}
+// - other functions -
-/*** - other functions - ***/
-
-gfxw_widget_t *
-gfxw_set_id(gfxw_widget_t *widget, int ID, int subID) {
+gfxw_widget_t *gfxw_set_id(gfxw_widget_t *widget, int ID, int subID) {
if (widget) {
widget->ID = ID;
widget->subID = subID;
@@ -2178,9 +1893,7 @@ gfxw_set_id(gfxw_widget_t *widget, int ID, int subID) {
return widget;
}
-gfxw_dyn_view_t *
-gfxw_dyn_view_set_params(gfxw_dyn_view_t *widget, int under_bits, void *under_bitsp,
- int signal, void *signalp) {
+gfxw_dyn_view_t *gfxw_dyn_view_set_params(gfxw_dyn_view_t *widget, int under_bits, void *under_bitsp, int signal, void *signalp) {
if (!widget)
return NULL;
@@ -2192,14 +1905,11 @@ gfxw_dyn_view_set_params(gfxw_dyn_view_t *widget, int under_bits, void *under_bi
return widget;
}
-gfxw_widget_t *
-gfxw_remove_id(gfxw_container_t *container, int ID, int subID) {
+gfxw_widget_t *gfxw_remove_id(gfxw_container_t *container, int ID, int subID) {
gfxw_widget_t **wp = &(container->contents);
while (*wp) {
- if ((*wp)->ID == ID
- && (subID == GFXW_NO_ID
- || (*wp)->subID == subID)) {
+ if ((*wp)->ID == ID && (subID == GFXW_NO_ID || (*wp)->subID == subID)) {
gfxw_widget_t *widget = *wp;
*wp = (*wp)->next;
@@ -2216,9 +1926,7 @@ gfxw_remove_id(gfxw_container_t *container, int ID, int subID) {
return NULL;
}
-
-gfxw_widget_t *
-gfxw_hide_widget(gfxw_widget_t *widget) {
+gfxw_widget_t *gfxw_hide_widget(gfxw_widget_t *widget) {
if (widget->flags & GFXW_FLAG_VISIBLE) {
widget->flags &= ~GFXW_FLAG_VISIBLE;
@@ -2229,8 +1937,7 @@ gfxw_hide_widget(gfxw_widget_t *widget) {
return widget;
}
-gfxw_widget_t *
-gfxw_show_widget(gfxw_widget_t *widget) {
+gfxw_widget_t *gfxw_show_widget(gfxw_widget_t *widget) {
if (!(widget->flags & GFXW_FLAG_VISIBLE)) {
widget->flags |= GFXW_FLAG_VISIBLE;
@@ -2241,25 +1948,21 @@ gfxw_show_widget(gfxw_widget_t *widget) {
return widget;
}
-
-gfxw_snapshot_t *
-gfxw_make_snapshot(gfxw_visual_t *visual, rect_t area) {
+gfxw_snapshot_t *gfxw_make_snapshot(gfxw_visual_t *visual, rect_t area) {
gfxw_snapshot_t *retval = (gfxw_snapshot_t*)sci_malloc(sizeof(gfxw_snapshot_t));
retval->serial = widget_serial_number_counter++;
retval->area = area;
- /* Work around subset semantics in gfx_rect_subset.
- This fixes the help icon in LSL5. */
+ // Work around subset semantics in gfx_rect_subset.
+ // This fixes the help icon in LSL5. */
if (retval->area.xl == 320) retval->area.xl = 321;
return retval;
}
-
-int
-gfxw_widget_matches_snapshot(gfxw_snapshot_t *snapshot, gfxw_widget_t *widget) {
+int gfxw_widget_matches_snapshot(gfxw_snapshot_t *snapshot, gfxw_widget_t *widget) {
int free_below = (snapshot->serial < widget_serial_number_counter) ? 0 : widget_serial_number_counter;
int free_above_eq = snapshot->serial;
rect_t bounds = widget->bounds;
@@ -2269,15 +1972,12 @@ gfxw_widget_matches_snapshot(gfxw_snapshot_t *snapshot, gfxw_widget_t *widget) {
bounds.y += widget->parent->bounds.y;
}
- return ((widget->serial >= free_above_eq
- || widget->serial < free_below)
- && gfx_rect_subset(bounds, snapshot->area));
+ return ((widget->serial >= free_above_eq || widget->serial < free_below) && gfx_rect_subset(bounds, snapshot->area));
}
#define MAGIC_FREE_NUMBER -42
-void
-_gfxw_free_contents_appropriately(gfxw_container_t *container, gfxw_snapshot_t *snapshot, int priority) {
+void _gfxw_free_contents_appropriately(gfxw_container_t *container, gfxw_snapshot_t *snapshot, int priority) {
gfxw_widget_t *widget = container->contents;
while (widget) {
@@ -2295,15 +1995,13 @@ _gfxw_free_contents_appropriately(gfxw_container_t *container, gfxw_snapshot_t *
}
}
-gfxw_snapshot_t *
-gfxw_restore_snapshot(gfxw_visual_t *visual, gfxw_snapshot_t *snapshot) {
+gfxw_snapshot_t *gfxw_restore_snapshot(gfxw_visual_t *visual, gfxw_snapshot_t *snapshot) {
_gfxw_free_contents_appropriately(GFXWC(visual), snapshot, MAGIC_FREE_NUMBER);
return snapshot;
}
-void
-gfxw_annihilate(gfxw_widget_t *widget) {
+void gfxw_annihilate(gfxw_widget_t *widget) {
gfxw_visual_t *visual = widget->visual;
int widget_priority = 0;
int free_overdrawn = 0;
@@ -2324,10 +2022,7 @@ gfxw_annihilate(gfxw_widget_t *widget) {
_gfxw_free_contents_appropriately(GFXWC(visual), &snapshot, widget_priority);
}
-
-
-gfxw_dyn_view_t *
-gfxw_picviewize_dynview(gfxw_dyn_view_t *dynview) {
+gfxw_dyn_view_t *gfxw_picviewize_dynview(gfxw_dyn_view_t *dynview) {
dynview->type = GFXW_PIC_VIEW;
dynview->flags |= GFXW_FLAG_DIRTY;
@@ -2339,10 +2034,9 @@ gfxw_picviewize_dynview(gfxw_dyn_view_t *dynview) {
return dynview;
}
-/* Chrono-Ports (tm) */
+// Chrono-Ports (tm)
-gfxw_port_t *
-gfxw_get_chrono_port(gfxw_visual_t *visual, gfxw_list_t **temp_widgets_list, int flags) {
+gfxw_port_t * gfxw_get_chrono_port(gfxw_visual_t *visual, gfxw_list_t **temp_widgets_list, int flags) {
gfxw_port_t *result = NULL;
gfx_color_t transparent = {{0, 0, 0, 0}, 0, 0, 0, 0};
int id = 0;
@@ -2351,8 +2045,7 @@ gfxw_get_chrono_port(gfxw_visual_t *visual, gfxw_list_t **temp_widgets_list, int
result = gfxw_find_default_port(visual);
} else {
id = visual->port_refs_nr;
- while (id >= 0 && (!visual->port_refs[id] ||
- !visual->port_refs[id]->chrono_port))
+ while (id >= 0 && (!visual->port_refs[id] || !visual->port_refs[id]->chrono_port))
id--;
if (id >= 0)
@@ -2360,7 +2053,8 @@ gfxw_get_chrono_port(gfxw_visual_t *visual, gfxw_list_t **temp_widgets_list, int
}
if (!result || !result->chrono_port) {
- if (flags & GFXW_CHRONO_NO_CREATE) return NULL;
+ if (flags & GFXW_CHRONO_NO_CREATE)
+ return NULL;
result = gfxw_new_port(visual, NULL, gfx_rect(0, 0, 320, 200), transparent, transparent);
*temp_widgets_list = gfxw_new_list(gfx_rect(0, 0, 320, 200), 1);
result->add(GFXWC(result), GFXW(*temp_widgets_list));
@@ -2372,11 +2066,11 @@ gfxw_get_chrono_port(gfxw_visual_t *visual, gfxw_list_t **temp_widgets_list, int
if (temp_widgets_list)
*temp_widgets_list = GFXWC(result->contents);
+
return result;
}
-static int
-gfxw_check_chrono_overlaps(gfxw_port_t *chrono, gfxw_widget_t *widget) {
+static int gfxw_check_chrono_overlaps(gfxw_port_t *chrono, gfxw_widget_t *widget) {
gfxw_widget_t *seeker = GFXWC(chrono->contents)->contents;
while (seeker) {
@@ -2391,18 +2085,15 @@ gfxw_check_chrono_overlaps(gfxw_port_t *chrono, gfxw_widget_t *widget) {
return 0;
}
-void
-gfxw_add_to_chrono(gfxw_visual_t *visual, gfxw_widget_t *widget) {
+void gfxw_add_to_chrono(gfxw_visual_t *visual, gfxw_widget_t *widget) {
gfxw_list_t *tw;
- gfxw_port_t *chrono =
- gfxw_get_chrono_port(visual, &tw, 0);
+ gfxw_port_t *chrono = gfxw_get_chrono_port(visual, &tw, 0);
gfxw_check_chrono_overlaps(chrono, widget);
chrono->add(GFXWC(chrono), widget);
}
-static gfxw_widget_t *
-gfxw_widget_intersects_chrono(gfxw_list_t *tw, gfxw_widget_t *widget) {
+static gfxw_widget_t *gfxw_widget_intersects_chrono(gfxw_list_t *tw, gfxw_widget_t *widget) {
gfxw_widget_t *seeker;
assert(tw->type == GFXW_SORTED_LIST);
@@ -2426,19 +2117,18 @@ gfxw_widget_intersects_chrono(gfxw_list_t *tw, gfxw_widget_t *widget) {
return 0;
}
-void
-gfxw_widget_reparent_chrono(gfxw_visual_t *visual, gfxw_widget_t *view, gfxw_list_t *target) {
+void gfxw_widget_reparent_chrono(gfxw_visual_t *visual, gfxw_widget_t *view, gfxw_list_t *target) {
gfxw_list_t *tw;
gfxw_port_t *chrono;
gfxw_widget_t *intersector;
chrono = gfxw_get_chrono_port(visual, &tw, GFXW_CHRONO_NO_CREATE);
- if (chrono == NULL) return;
+ if (chrono == NULL)
+ return;
intersector = gfxw_widget_intersects_chrono(tw, view);
if (intersector) {
- Common::Point origin = Common::Point(intersector->parent->zone.x,
- intersector->parent->zone.y);
+ Common::Point origin = Common::Point(intersector->parent->zone.x, intersector->parent->zone.y);
gfxw_remove_widget_from_container(GFXWC(chrono), GFXW(tw));
gfxw_remove_widget_from_container(GFXWC(chrono->parent), GFXW(chrono));
@@ -2449,8 +2139,7 @@ gfxw_widget_reparent_chrono(gfxw_visual_t *visual, gfxw_widget_t *view, gfxw_lis
}
}
-void
-gfxw_widget_kill_chrono(gfxw_visual_t *visual, int window) {
+void gfxw_widget_kill_chrono(gfxw_visual_t *visual, int window) {
int i;
for (i = window; i < visual->port_refs_nr ; i++) {