bool Element::is_last_two_rows() const { if(!is_empty()) { Cell cell = convert_layout_index_to_cell(get_layout_index()); return (cell.get_y() >= 5); } else { return false; } }
bool Element::is_first_row() const { if(!is_empty()) { Cell cell = convert_layout_index_to_cell(get_layout_index()); return (cell.get_y() == 1); } else { return false; } }
static gboolean mate_icon_text_item_event (MateCanvasItem *item, GdkEvent *event) { MateIconTextItem *iti; MateIconTextItemPrivate *priv; int idx; double cx, cy; iti = MATE_ICON_TEXT_ITEM (item); priv = iti->_priv; switch (event->type) { case GDK_KEY_PRESS: if (!iti->editing) { break; } switch(event->key.keyval) { /* Pass these events back to parent */ case GDK_Escape: case GDK_Return: case GDK_KP_Enter: return FALSE; /* Handle up and down arrow keys. GdkEntry does not know * how to handle multi line items */ case GDK_Up: case GDK_Down: iti_handle_arrow_key_event(iti, event); break; default: /* Check for control key operations */ if (event->key.state & GDK_CONTROL_MASK) { return FALSE; } /* Handle any events that reach us */ gtk_widget_event (GTK_WIDGET (priv->entry), event); break; } /* Update text item to reflect changes */ update_pango_layout (iti); priv->need_text_update = TRUE; mate_canvas_item_request_update (item); return TRUE; case GDK_BUTTON_PRESS: if (!iti->editing) { break; } if (event->button.button == 1) { mate_canvas_w2c_d (item->canvas, event->button.x, event->button.y, &cx, &cy); idx = get_layout_index (iti, (cx - item->x1) + MARGIN_X, (cy - item->y1) + MARGIN_Y); iti_start_selecting (iti, idx, event->button.time); } return TRUE; case GDK_MOTION_NOTIFY: if (!priv->selecting) break; gtk_widget_event (GTK_WIDGET (priv->entry), event); mate_canvas_w2c_d (item->canvas, event->button.x, event->button.y, &cx, &cy); idx = get_layout_index (iti, floor ((cx - (item->x1 + MARGIN_X)) + .5), floor ((cy - (item->y1 + MARGIN_Y)) + .5)); iti_selection_motion (iti, idx); return TRUE; case GDK_BUTTON_RELEASE: if (priv->selecting && event->button.button == 1) iti_stop_selecting (iti, event->button.time); else break; return TRUE; default: break; } return FALSE; }