KSM edits

Dependencies:   mbed RA8875

Revision:
20:d25fb9c55781
Parent:
19:fee3f71fab2d
--- a/Button.cpp	Wed Jul 10 13:30:27 2019 +0000
+++ b/Button.cpp	Thu Jul 11 14:04:19 2019 +0000
@@ -6,12 +6,8 @@
   *     
   *
   */
-Button::Button(loc_t arg_corner1_x, loc_t arg_corner1_y, loc_t arg_corner2_x, loc_t arg_corner2_y, color_t arg_color, RA8875 *arg_display, const char * arg_name)
-: corner1_x(arg_corner1_x),
-  corner1_y(arg_corner1_y),
-  corner2_x(arg_corner2_x),
-  corner2_y(arg_corner2_y),
-  //button_name(arg_name),
+Button::Button(rect_t arg_rect, color_t arg_color, RA8875 *arg_display, const char * arg_name)
+: button_rect(arg_rect),
   button_color(arg_color),
   lcd(arg_display)
 {
@@ -20,6 +16,28 @@
     snprintf(button_name, len, "%s", arg_name);
 }
 
+Button::Button(loc_t arg_corner1_x, loc_t arg_corner1_y, loc_t arg_corner2_x, loc_t arg_corner2_y, color_t arg_color, RA8875 *arg_display, const char * arg_name)
+{
+
+
+    //button_name(arg_name),
+    button_color = arg_color;
+    lcd = arg_display;
+    button_rect.p1.x = arg_corner1_x; 
+    button_rect.p1.y = arg_corner1_y;
+    button_rect.p2.x = arg_corner2_x;
+    button_rect.p2.y = arg_corner2_y;
+    int len = strlen(arg_name) + 1;
+    button_name = new char[len];
+    snprintf(button_name, len, "%s", arg_name);
+    
+
+}
+
+
+/*
+
+*/
 //Button::Button()
 //: Button(0, 0, 0, 0, RGB(0,0,0), RA8875(), string("noname"))
 //{
@@ -30,11 +48,14 @@
   */
 bool Button::isPressed(loc_t cur_x, loc_t cur_y)
 {
-    if(corner1_x < cur_x && corner2_x > cur_x && corner1_y < cur_y && corner2_y > cur_y)
+    /*if(corner1_x < cur_x && corner2_x > cur_x && corner1_y < cur_y && corner2_y > cur_y)
     {
         return true;
-    }
-    return false;
+    }*/
+    point_t touch_pt; 
+    touch_pt.x = cur_x;
+    touch_pt.y = cur_y;
+    return lcd->Intersect(button_rect, touch_pt);
 }
 
 /** draw
@@ -43,8 +64,8 @@
   */
 void Button::draw()
 {
-    lcd->rect(corner1_x, corner1_y, corner2_x, corner2_y, button_color);
-    lcd->puts(corner1_x, corner2_y, button_name);
+    lcd->rect(button_rect, button_color);
+    lcd->puts(button_rect.p1.x, button_rect.p1.y, button_name);
 }
 
 /** toString