summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2009-08-02 20:48:04 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2009-08-02 20:48:04 +0000
commitd66bf05ad250c9702c59397034f0ac387b14e323 (patch)
tree783ae210da28e2a777533a125cc673d58faad9ff /apps
parent4654b3c90b1a552bec22899285dfba85017c2543 (diff)
downloadrockbox-d66bf05ad250c9702c59397034f0ac387b14e323.tar.gz
rockbox-d66bf05ad250c9702c59397034f0ac387b14e323.zip
Reversi: Fix warning, change the text so that it does not resize the board (text does not scroll currently), and fix some target buttons.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22121 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/reversi/reversi-gui.c70
-rw-r--r--apps/plugins/reversi/reversi-gui.h18
2 files changed, 63 insertions, 25 deletions
diff --git a/apps/plugins/reversi/reversi-gui.c b/apps/plugins/reversi/reversi-gui.c
index c4c7506f2a..1d8b9c1fed 100644
--- a/apps/plugins/reversi/reversi-gui.c
+++ b/apps/plugins/reversi/reversi-gui.c
@@ -49,8 +49,12 @@ further options:
49 49
50PLUGIN_HEADER 50PLUGIN_HEADER
51 51
52int font_width=4; 52/* This is initialized at the start of the plugin and used to determine the
53int font_height=8; 53 * Appropriate game board size/legend spacing if the font is larger than a cell
54 * height/width.
55 */
56static int font_width;
57static int font_height;
54 58
55/* Where the board begins */ 59/* Where the board begins */
56#define XOFS 4 60#define XOFS 4
@@ -62,7 +66,7 @@ int font_height=8;
62#define MARGIN_C_W 0 66#define MARGIN_C_W 0
63#define MARGIN_C_H 2 67#define MARGIN_C_H 2
64#else 68#else
65#define MARGIN_W (XOFS*2 + font_width*2) 69#define MARGIN_W (XOFS*2 + 16)
66#define MARGIN_H (YOFS*2+1) 70#define MARGIN_H (YOFS*2+1)
67#define MARGIN_C_W 1 71#define MARGIN_C_W 1
68#define MARGIN_C_H 0 72#define MARGIN_C_H 0
@@ -112,10 +116,13 @@ int font_height=8;
112 116
113#if LCD_HEIGHT > LCD_WIDTH 117#if LCD_HEIGHT > LCD_WIDTH
114#define LEGEND_X(lc) (CELL_X(lc)) 118#define LEGEND_X(lc) (CELL_X(lc))
115#define LEGEND_Y(lr) (CELL_Y(BOARD_SIZE+lr) + YOFS + 1) 119#define LEGEND_Y(lr) ((CELL_HEIGHT > font_height) ? \
120 CELL_Y(BOARD_SIZE+lr) + YOFS + 1 : \
121 BOARD_HEIGHT + 2*YOFS + font_height*(lr-BOARD_SIZE))
116#else 122#else
117#define LEGEND_X(lc) (CELL_X(BOARD_SIZE+lc) + XOFS + 1) 123#define LEGEND_X(lc) (CELL_X(BOARD_SIZE+lc) + XOFS + 1)
118#define LEGEND_Y(lr) (CELL_Y(lr) > font_height*2 ? CELL_Y(lr) : font_height*(lr) + XOFS) 124#define LEGEND_Y(lr) (CELL_HEIGHT > font_height ? \
125 CELL_Y(lr) : font_height*(lr)+YOFS)
119#endif 126#endif
120 127
121 128
@@ -152,23 +159,23 @@ static bool game_finished;
152#if LCD_HEIGHT < LCD_WIDTH 159#if LCD_HEIGHT < LCD_WIDTH
153/* Define Menu button x, y, width, height */ 160/* Define Menu button x, y, width, height */
154#define B_MENU_X LEGEND_X(0) 161#define B_MENU_X LEGEND_X(0)
155#define B_MENU_Y (LCD_HEIGHT/4) 162#define B_MENU_Y (LCD_HEIGHT-LCD_HEIGHT/2)
156#define B_MENU_W (LCD_WIDTH-LEGEND_X(0)) 163#define B_MENU_W (LCD_WIDTH-LEGEND_X(0))
157#define B_MENU_H (LCD_HEIGHT/4) 164#define B_MENU_H (LCD_HEIGHT/4)
158/* Define Quit Button x, y, width, height */ 165/* Define Quit Button x, y, width, height */
159#define B_QUIT_X LEGEND_X(0) 166#define B_QUIT_X LEGEND_X(0)
160#define B_QUIT_Y (LCD_HEIGHT/2) 167#define B_QUIT_Y (LCD_HEIGHT-LCD_HEIGHT/4)
161#define B_QUIT_W (LCD_WIDTH-LEGEND_X(0)) 168#define B_QUIT_W (LCD_WIDTH-LEGEND_X(0))
162#define B_QUIT_H (LCD_HEIGHT/4) 169#define B_QUIT_H (LCD_HEIGHT/4)
163#else 170#else
164/* Define Menu button x, y, width, height */ 171/* Define Menu button x, y, width, height */
165#define B_MENU_X (LCD_WIDTH/2) 172#define B_MENU_X (LCD_WIDTH/2)
166#define B_MENU_Y LEGEND_Y(0) 173#define B_MENU_Y (CELL_HEIGHT*BOARD_SIZE+YOFS*2)
167#define B_MENU_W (LCD_WIDTH/4) 174#define B_MENU_W (LCD_WIDTH/4)
168#define B_MENU_H (2*CELL_HEIGHT) 175#define B_MENU_H (2*CELL_HEIGHT)
169/* Define Quit Button x, y, width, height */ 176/* Define Quit Button x, y, width, height */
170#define B_QUIT_X (LCD_WIDTH-LCD_WIDTH/4) 177#define B_QUIT_X (LCD_WIDTH-LCD_WIDTH/4)
171#define B_QUIT_Y LEGEND_Y(0) 178#define B_QUIT_Y (CELL_HEIGHT*BOARD_SIZE+YOFS*2)
172#define B_QUIT_W (LCD_WIDTH/4) 179#define B_QUIT_W (LCD_WIDTH/4)
173#define B_QUIT_H (2*CELL_HEIGHT) 180#define B_QUIT_H (2*CELL_HEIGHT)
174#endif 181#endif
@@ -273,6 +280,8 @@ static void reversi_gui_draw_cell(int x, int y, int color) {
273/* Draws the complete screen */ 280/* Draws the complete screen */
274static void reversi_gui_display_board(void) { 281static void reversi_gui_display_board(void) {
275 int x, y, r, c, x_width, x_height; 282 int x, y, r, c, x_width, x_height;
283 /* This viewport is used to draw a scrolling score */
284 struct viewport tempvp;
276 char buf[8]; 285 char buf[8];
277 286
278 /* Clear the display buffer */ 287 /* Clear the display buffer */
@@ -307,20 +316,43 @@ static void reversi_gui_display_board(void) {
307 316
308 x = LEGEND_X(0); 317 x = LEGEND_X(0);
309 y = LEGEND_Y(0); 318 y = LEGEND_Y(0);
310 reversi_gui_draw_cell(x, y, BLACK); 319 reversi_gui_draw_cell(x, y+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2, BLACK);
311 rb->snprintf(buf, sizeof(buf), "%d", c); 320 rb->snprintf(buf, sizeof(buf), "%01d", c);
312 y += (CELL_HEIGHT-x_height) / 2; 321
313 rb->lcd_putsxy(x + CELL_WIDTH + 2, y, buf); 322 tempvp.x=x+CELL_WIDTH+2;
323 tempvp.y=y;
324 tempvp.width=LCD_WIDTH-tempvp.x;
325 tempvp.height=LEGEND_Y(1);
326
327 tempvp.font=FONT_UI;
328 tempvp.drawmode=STYLE_DEFAULT;
329#if LCD_DEPTH > 1
330 tempvp.fg_pattern=0;
331 tempvp.bg_pattern=0xFFFF;
332#ifdef HAVE_LCD_COLOR
333 tempvp.lss_pattern=0;
334 tempvp.lse_pattern=0;
335 tempvp.lst_pattern=0;
336#endif
337#endif
338
339 rb->lcd_set_viewport(&tempvp);
340 rb->lcd_puts_scroll(0, 0, buf);
341 rb->lcd_set_viewport(NULL);
314 342
315 y = LEGEND_Y(1); 343 y = LEGEND_Y(1);
316 reversi_gui_draw_cell(x, y, WHITE); 344
317 rb->snprintf(buf, sizeof(buf), "%d", r); 345 reversi_gui_draw_cell(x, y+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2, WHITE);
318 y += (CELL_HEIGHT-x_height) / 2; 346 rb->snprintf(buf, sizeof(buf), "%01d", r);
319 rb->lcd_putsxy(x + CELL_WIDTH + 2, y, buf); 347
348 tempvp.y=y;
349 rb->lcd_set_viewport(&tempvp);
350 rb->lcd_puts_scroll(0, 0, buf);
351 rb->lcd_set_viewport(NULL);
320 352
321 /* Draw the box around the current player */ 353 /* Draw the box around the current player */
322 r = (cur_player == BLACK ? 0 : 1); 354 r = (cur_player == BLACK ? 0 : 1);
323 y = LEGEND_Y(r); 355 y = LEGEND_Y(r)+(LEGEND_Y(1)-LEGEND_Y(0))/2-CELL_WIDTH/2;
324 rb->lcd_drawrect(x, y, CELL_WIDTH+1, CELL_HEIGHT+1); 356 rb->lcd_drawrect(x, y, CELL_WIDTH+1, CELL_HEIGHT+1);
325 357
326#if defined(HAVE_TOUCHSCREEN) 358#if defined(HAVE_TOUCHSCREEN)
@@ -576,7 +608,7 @@ enum plugin_status plugin_start(const void *parameter) {
576 char msg_buf[30]; 608 char msg_buf[30];
577 609
578 /* Initialize Font Width and height */ 610 /* Initialize Font Width and height */
579 rb->lcd_getstringsize("x", &font_width, &font_height); 611 rb->lcd_getstringsize("0", &font_width, &font_height);
580 612
581#ifdef HAVE_TOUCHSCREEN 613#ifdef HAVE_TOUCHSCREEN
582 rb->touchscreen_set_mode(TOUCHSCREEN_POINT); 614 rb->touchscreen_set_mode(TOUCHSCREEN_POINT);
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index a93fa344e4..1ad2d52ed3 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -64,8 +64,10 @@
64#define REVERSI_BUTTON_DOWN BUTTON_PLAY 64#define REVERSI_BUTTON_DOWN BUTTON_PLAY
65#define REVERSI_BUTTON_LEFT (BUTTON_LEFT | BUTTON_SCROLL_BACK) 65#define REVERSI_BUTTON_LEFT (BUTTON_LEFT | BUTTON_SCROLL_BACK)
66#define REVERSI_BUTTON_RIGHT (BUTTON_RIGHT | BUTTON_SCROLL_FWD) 66#define REVERSI_BUTTON_RIGHT (BUTTON_RIGHT | BUTTON_SCROLL_FWD)
67#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT | BUTTON_REL) 67#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
68#define REVERSI_BUTTON_MENU (BUTTON_MENU | BUTTON_SELECT) 68#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
69#define REVERSI_BUTTON_MENU BUTTON_SELECT
70#define REVERSI_BUTTON_MENU_LONGPRESS
69 71
70#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 72#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
71#define REVERSI_BUTTON_QUIT BUTTON_POWER 73#define REVERSI_BUTTON_QUIT BUTTON_POWER
@@ -112,8 +114,10 @@
112#define REVERSI_BUTTON_DOWN BUTTON_DOWN 114#define REVERSI_BUTTON_DOWN BUTTON_DOWN
113#define REVERSI_BUTTON_LEFT BUTTON_LEFT 115#define REVERSI_BUTTON_LEFT BUTTON_LEFT
114#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT 116#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
115#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT|BUTTON_REL) 117#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
116#define REVERSI_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT) 118#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
119#define REVERSI_BUTTON_MENU BUTTON_SELECT
120#define REVERSI_BUTTON_MENU_LONGPRESS
117 121
118#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) 122#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
119#define REVERSI_BUTTON_QUIT (BUTTON_HOME|BUTTON_REPEAT) 123#define REVERSI_BUTTON_QUIT (BUTTON_HOME|BUTTON_REPEAT)
@@ -121,8 +125,10 @@
121#define REVERSI_BUTTON_DOWN BUTTON_DOWN 125#define REVERSI_BUTTON_DOWN BUTTON_DOWN
122#define REVERSI_BUTTON_LEFT BUTTON_LEFT 126#define REVERSI_BUTTON_LEFT BUTTON_LEFT
123#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT 127#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
124#define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT|BUTTON_REL) 128#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
125#define REVERSI_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT) 129#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
130#define REVERSI_BUTTON_MENU BUTTON_SELECT
131#define REVERSI_BUTTON_MENU_LONGPRESS
126 132
127#elif CONFIG_KEYPAD == MROBE500_PAD 133#elif CONFIG_KEYPAD == MROBE500_PAD
128#define REVERSI_BUTTON_QUIT BUTTON_POWER 134#define REVERSI_BUTTON_QUIT BUTTON_POWER