From 11e10321f97577204b74f84b528029490e64ef47 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Sat, 18 Jul 2009 16:02:04 +0000 Subject: Add the ability to navigate between tables via foreign key relationships, addressing the first part of #209: - For the first column linked by each foreign key, display a link arrow within the table cell - When clicking on the link arrow, select the reference table and set the table filters to select the clicked value - Also uses the table cell subclass to allow the entire cell to be editable, not just the contained text (addresses #250) --- Source/SPTextAndLinkCell.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Source/SPTextAndLinkCell.h (limited to 'Source/SPTextAndLinkCell.h') diff --git a/Source/SPTextAndLinkCell.h b/Source/SPTextAndLinkCell.h new file mode 100644 index 00000000..48d6bb18 --- /dev/null +++ b/Source/SPTextAndLinkCell.h @@ -0,0 +1,52 @@ +// +// $Id: SPTextAndLinkCell.h 866 2009-06-15 16:05:54Z bibiko $ +// +// SPTextAndLinkCell.h +// sequel-pro +// +// Created by Rowan Beentje on 16/07/2009. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at + +#import + +enum sptextandlinkcell_drawstates +{ + SP_LINKDRAWSTATE_NORMAL = 0, + SP_LINKDRAWSTATE_HIGHLIGHT = 1, + SP_LINKDRAWSTATE_BACKGROUNDHIGHLIGHT = 2 +}; + + +@interface SPTextAndLinkCell : NSTextFieldCell { + BOOL hasLink; + + NSButtonCell *linkButton; + id linkTarget; + SEL linkAction; + + NSRect linkRect; + int lastLinkColumn; + int lastLinkRow; + int drawState; +} + +- (void) setTarget:(id)theTarget action:(SEL)theAction; +- (int) getClickedColumn; +- (int) getClickedRow; + +@end -- cgit v1.2.3