aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks
diff options
context:
space:
mode:
Diffstat (limited to 'Frameworks')
-rw-r--r--Frameworks/MCPKit/MCPFoundationKit/MCPResult.m9
-rw-r--r--Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m27
-rw-r--r--Frameworks/PSMTabBar/PSMTabBarControl.h67
-rw-r--r--Frameworks/PSMTabBar/PSMTabBarControl.m25
4 files changed, 78 insertions, 50 deletions
diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPResult.m b/Frameworks/MCPKit/MCPFoundationKit/MCPResult.m
index 53066c14..84793e44 100644
--- a/Frameworks/MCPKit/MCPFoundationKit/MCPResult.m
+++ b/Frameworks/MCPKit/MCPFoundationKit/MCPResult.m
@@ -419,10 +419,7 @@ const OUR_CHARSET our_charsets60[] =
if (theRow[i] == NULL) {
theCurrentObj = [NSNull null];
} else {
- char *theData = calloc(sizeof(char),theLengths[i]+1);
- //char *theUselLess;
- memcpy(theData, theRow[i],theLengths[i]);
- theData[theLengths[i]] = '\0';
+ char *theData = theRow[i];
switch (theField[i].type) {
case FIELD_TYPE_TINY:
@@ -444,7 +441,7 @@ const OUR_CHARSET our_charsets60[] =
case FIELD_TYPE_SET:
case FIELD_TYPE_ENUM:
case FIELD_TYPE_NEWDATE: // Don't know what the format for this type is...
- theCurrentObj = [NSString stringWithCString:theData encoding:mEncoding];
+ theCurrentObj = [[[NSString alloc] initWithBytes:theData length:theLengths[i] encoding:mEncoding] autorelease];
break;
case FIELD_TYPE_BIT:
@@ -479,8 +476,6 @@ const OUR_CHARSET our_charsets60[] =
break;
}
- free(theData);
-
// Some of the creators return nil object...
if (theCurrentObj == nil) {
theCurrentObj = [NSNull null];
diff --git a/Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m b/Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m
index 465221fe..bdb271fe 100644
--- a/Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m
+++ b/Frameworks/MCPKit/MCPFoundationKit/MCPStreamingResult.m
@@ -226,14 +226,12 @@ void _bytes2bin(Byte *n, NSUInteger nbytes, NSUInteger len, char *buf);
id cellData = nil;
char *theData = NULL;
- // In fully streaming mode, copy across the data for the MYSQL_ROW
+ // In fully streaming mode, get a reference to the data for the MYSQL_ROW
if (fullyStreaming) {
if (theRow[i] == NULL) {
cellData = [NSNull null];
} else {
- theData = calloc(sizeof(char), fieldLengths[i]+1);
- memcpy(theData, theRow[i], fieldLengths[i]);
- theData[fieldLengths[i]] = '\0';
+ theData = theRow[i];
}
// In cached-streaming mode, use a reference to the downloaded data
@@ -281,7 +279,7 @@ void _bytes2bin(Byte *n, NSUInteger nbytes, NSUInteger len, char *buf);
}
// For string data, convert to text
else {
- cellData = [NSString stringWithCString:theData encoding:mEncoding];
+ cellData = [[[NSString alloc] initWithBytes:theData length:fieldLengths[i] encoding:mEncoding] autorelease];
}
break;
@@ -328,9 +326,6 @@ void _bytes2bin(Byte *n, NSUInteger nbytes, NSUInteger len, char *buf);
break;
}
- // Free the data if it was originally allocated
- if (fullyStreaming) free(theData);
-
// If a creator returned a nil object, replace with NSNull
if (cellData == nil) cellData = [NSNull null];
}
@@ -435,12 +430,22 @@ void _bytes2bin(Byte *n, NSUInteger nbytes, NSUInteger len, char *buf);
void _bytes2bin(Byte *n, NSUInteger nbytes, NSUInteger len, char *buf)
{
+ // NSUInteger i = 0;
+ // nbytes--;
+ // while (++i <= len)
+ // buf[len - i] = ( (n[nbytes - (i >> 3)] >> (i & 0x7)) & 1 ) ? '1' : '0';
+ //
+ // buf[len] = '\0';
+ // ↑ why does this code not working anymore?
+
NSUInteger i = 0;
nbytes--;
- while (++i <= len)
- buf[len - i] = ( (n[nbytes - (i >> 3)] >> (i & 0x7)) & 1 ) ? '1' : '0';
+ len--;
+ while (i <= len)
+ buf[len - i++] = ( (n[nbytes - (i >> 3)] >> (i & 0x7)) & 1 ) ? '1' : '0';
+
+ buf[len+1] = '\0';
- buf[len] = '\0';
}
/**
diff --git a/Frameworks/PSMTabBar/PSMTabBarControl.h b/Frameworks/PSMTabBar/PSMTabBarControl.h
index 663bb74e..481bb3b8 100644
--- a/Frameworks/PSMTabBar/PSMTabBarControl.h
+++ b/Frameworks/PSMTabBar/PSMTabBarControl.h
@@ -66,53 +66,55 @@ enum {
// Spring-loading.
NSTimer *_springTimer;
- NSTabViewItem *_tabViewItemWithSpring;
+ NSTabViewItem *_tabViewItemWithSpring;
// drawing style
id<PSMTabStyle> style;
- BOOL _canCloseOnlyTab;
- BOOL _disableTabClose;
- BOOL _hideForSingleTab;
- BOOL _showAddTabButton;
- BOOL _sizeCellsToFit;
- BOOL _useOverflowMenu;
- BOOL _alwaysShowActiveTab;
- BOOL _allowsScrubbing;
- BOOL _useSafariStyleDragging;
- NSInteger _resizeAreaCompensation;
- PSMTabBarOrientation _orientation;
- BOOL _automaticallyAnimates;
+ BOOL _canCloseOnlyTab;
+ BOOL _disableTabClose;
+ BOOL _hideForSingleTab;
+ BOOL _showAddTabButton;
+ BOOL _sizeCellsToFit;
+ BOOL _useOverflowMenu;
+ BOOL _alwaysShowActiveTab;
+ BOOL _allowsScrubbing;
+ BOOL _useSafariStyleDragging;
+ NSInteger _resizeAreaCompensation;
+ PSMTabBarOrientation _orientation;
+ BOOL _automaticallyAnimates;
NSTimer *_animationTimer;
PSMTabBarTearOffStyle _tearOffStyle;
// behavior
- BOOL _allowsBackgroundTabClosing;
- BOOL _selectsTabsOnMouseDown;
- BOOL _createsTabOnDoubleClick;
- id _createNewTabTarget;
- SEL _createNewTabAction;
+ BOOL _allowsBackgroundTabClosing;
+ BOOL _selectsTabsOnMouseDown;
+ BOOL _createsTabOnDoubleClick;
+ id _createNewTabTarget;
+ SEL _createNewTabAction;
+ id _doubleClickTarget;
+ SEL _doubleClickAction;
// vertical tab resizing
- BOOL _allowsResizing;
- BOOL _resizing;
+ BOOL _allowsResizing;
+ BOOL _resizing;
// cell width
- NSInteger _cellMinWidth;
- NSInteger _cellMaxWidth;
- NSInteger _cellOptimumWidth;
+ NSInteger _cellMinWidth;
+ NSInteger _cellMaxWidth;
+ NSInteger _cellOptimumWidth;
// animation for hide/show
- NSInteger _currentStep;
- BOOL _isHidden;
+ NSInteger _currentStep;
+ BOOL _isHidden;
IBOutlet id partnerView; // gets resized when hide/show
- BOOL _awakenedFromNib;
- NSInteger _tabBarWidth;
+ BOOL _awakenedFromNib;
+ NSInteger _tabBarWidth;
NSTimer *_showHideAnimationTimer;
// drag and drop
- NSEvent *_lastMouseDownEvent; // keep this for dragging reference
- BOOL _didDrag;
- BOOL _closeClicked;
+ NSEvent *_lastMouseDownEvent; // keep this for dragging reference
+ BOOL _didDrag;
+ BOOL _closeClicked;
// MVC help
IBOutlet id delegate;
@@ -144,6 +146,11 @@ enum {
- (SEL)createNewTabAction;
- (void)setCreateNewTabAction:(SEL)selector;
+- (id)doubleClickTarget;
+- (void)setDoubleClickTarget:(id)object;
+- (SEL)doubleClickAction;
+- (void)setDoubleClickAction:(SEL)selector;
+
- (NSInteger)cellMinWidth;
- (void)setCellMinWidth:(NSInteger)value;
- (NSInteger)cellMaxWidth;
diff --git a/Frameworks/PSMTabBar/PSMTabBarControl.m b/Frameworks/PSMTabBar/PSMTabBarControl.m
index 028dc84b..a38c50b0 100644
--- a/Frameworks/PSMTabBar/PSMTabBarControl.m
+++ b/Frameworks/PSMTabBar/PSMTabBarControl.m
@@ -471,8 +471,6 @@
[self update];
}
-
-
- (id)createNewTabTarget
{
return _createNewTabTarget;
@@ -495,7 +493,25 @@
[[self addTabButton] setAction:selector];
}
+- (id)doubleClickTarget
+{
+ return _doubleClickTarget;
+}
+
+- (void)setDoubleClickTarget:(id)object
+{
+ _doubleClickTarget = object;
+}
+
+- (SEL)doubleClickAction
+{
+ return _doubleClickAction;
+}
+- (void)setDoubleClickAction:(SEL)selector
+{
+ _doubleClickAction = selector;
+}
- (NSInteger)cellMinWidth
{
@@ -1327,6 +1343,11 @@
[cell setCloseButtonOver:NO];
[cell setCloseButtonPressed:YES];
_closeClicked = YES;
+ }
+ else if ([theEvent clickCount] == 2) {
+ [cell setCloseButtonOver:NO];
+
+ [_doubleClickTarget performSelector:_doubleClickAction withObject:cell];
} else {
[cell setCloseButtonPressed:NO];
if (_selectsTabsOnMouseDown) {