mirror of
https://github.com/textmate/textmate.git
synced 2026-01-21 04:38:13 -05:00
Implement Wrap Column → Other…
This is done using an alert with an accessory view. Not the best user experience, but given how rarely the user interacts with this, I wasn’t really in the mood to spend a lot of time on this part now (can always be improved later). Closes issue #200.
This commit is contained in:
@@ -1736,22 +1736,50 @@ static void update_menu_key_equivalents (NSMenu* menu, action_to_key_t const& ac
|
||||
document->buffer().indent().set_soft_tabs(flag);
|
||||
}
|
||||
|
||||
- (void)setWrapColumn:(NSInteger)newWrapColumn
|
||||
{
|
||||
if(wrapColumn == newWrapColumn)
|
||||
return;
|
||||
|
||||
wrapColumn = newWrapColumn;
|
||||
settings_t::set(kSettingsWrapColumnKey, wrapColumn);
|
||||
if(layout)
|
||||
{
|
||||
AUTO_REFRESH;
|
||||
layout->set_wrapping(self.softWrap, wrapColumn);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setWrapColumnSheetDidEnd:(NSAlert*)alert returnCode:(NSInteger)returnCode contextInfo:(void*)info
|
||||
{
|
||||
if(returnCode == NSAlertDefaultReturn)
|
||||
{
|
||||
NSTextField* textField = (NSTextField*)[alert accessoryView];
|
||||
[self setWrapColumn:std::max<NSInteger>([textField integerValue], 10)];
|
||||
}
|
||||
[alert release];
|
||||
}
|
||||
|
||||
- (void)takeWrapColumnFrom:(id)sender
|
||||
{
|
||||
ASSERT([sender respondsToSelector:@selector(tag)]);
|
||||
if(wrapColumn == [sender tag])
|
||||
return;
|
||||
|
||||
// TODO Soft wrap
|
||||
// if(wrapColumn == NSWrapColumnAskUser)
|
||||
// ;
|
||||
|
||||
wrapColumn = [sender tag];
|
||||
settings_t::set(kSettingsWrapColumnKey, wrapColumn);
|
||||
if(layout)
|
||||
if([sender tag] == NSWrapColumnAskUser)
|
||||
{
|
||||
AUTO_REFRESH;
|
||||
layout->set_wrapping(self.softWrap, wrapColumn);
|
||||
NSTextField* textField = [[[NSTextField alloc] initWithFrame:NSZeroRect] autorelease];
|
||||
[textField setIntegerValue:wrapColumn == NSWrapColumnWindowWidth ? 80 : wrapColumn];
|
||||
[textField sizeToFit];
|
||||
[textField setFrameSize:NSMakeSize(200, NSHeight([textField frame]))];
|
||||
|
||||
NSAlert* alert = [[NSAlert alertWithMessageText:@"Set Wrap Column" defaultButton:@"OK" alternateButton:@"Cancel" otherButton:nil informativeTextWithFormat:@"Specify what column text should wrap at:"] retain];
|
||||
[alert setAccessoryView:textField];
|
||||
[alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(setWrapColumnSheetDidEnd:returnCode:contextInfo:) contextInfo:NULL];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self setWrapColumn:[sender tag]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user