From 7a4ebb779590f8c09c1cafa2721556c6ef32234f Mon Sep 17 00:00:00 2001 From: Bill Kendrick Date: Sat, 18 Feb 2023 21:14:51 -0800 Subject: [PATCH] Button for stamp rotation (WIP) --- data/images/ui/rotate.png | Bin 700 -> 4970 bytes src/tuxpaint.c | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/data/images/ui/rotate.png b/data/images/ui/rotate.png index 61f2f3926df2d8f2268e5127c83e8ceb82a00c29..63ba6bd992faa6b411aa238a23b07c6239213d76 100644 GIT binary patch literal 4970 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 WINDOW_WIDTH - r_ttoolopt.w) mouse_warp_x = WINDOW_WIDTH - r_ttoolopt.w - 1; - SDL_WarpMouse(mouse_warp_x, old_y); // FIXME 2023-02-18 + SDL_WarpMouse(mouse_warp_x, old_y); #endif do_setcursor(cursor_rotate); @@ -6338,7 +6340,7 @@ static void mainloop(void) shape_current_y) * (shape_start_y - shape_current_y)); - SDL_WarpMouse(shape_current_x + r_ttools.w, shape_start_y); // FIXME 2023-02-18 + SDL_WarpMouse(shape_current_x + r_ttools.w, shape_start_y); do_setcursor(cursor_rotate); @@ -11217,10 +11219,33 @@ static void draw_stamps(void) r_ttoolopt.h + ((most + gd_toolopt.cols + TOOLOFFSET) / gd_toolopt.cols * button_h); - dest.w = r_ttoolopt.w; - dest.h = button_h; - SDL_FillRect(screen, &dest, SDL_MapRGB(screen->format, 128, 128, 128)); /* FIMXE: 2023-02-18 */ + if (stamp_rotation_ctrl) + button_body = img_btn_down; + else + button_body = img_btn_up; + SDL_BlitSurface(button_body, NULL, screen, &dest); + + dest.x = WINDOW_WIDTH - (button_w * 2) + (button_w - img_rotate->w) / 2; + dest.y = + (r_ttoolopt.h + + ((most + gd_toolopt.cols + TOOLOFFSET) / gd_toolopt.cols * button_h) + + (button_h - img_rotate->h) / 2); + + SDL_BlitSurface(img_black, NULL, img_rotate, NULL); + SDL_BlitSurface(img_rotate, NULL, screen, &dest); + + /* No-op button */ + + dest.x = WINDOW_WIDTH - r_ttoolopt.w + button_w; + dest.y = + r_ttoolopt.h + + ((most + gd_toolopt.cols + TOOLOFFSET) / gd_toolopt.cols * button_h); + + SDL_BlitSurface(img_btn_off, NULL, screen, &dest); + + + /* Push other buttons down */ off_y = button_h; } else { off_y = 0;