mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
c1a59b534a
The tracking rect code had to be pulled to get tool tips to work. This has at least one negative drawback (the mouse cursor does not change back to an arrow when moved outside the window) and there may be more. Changes to 'bdlay' are only detected after disabling and re-enabling 'beval'.
107 lines
2.8 KiB
Objective-C
107 lines
2.8 KiB
Objective-C
/* vi:set ts=8 sts=4 sw=4 ft=objc:
|
|
*
|
|
* VIM - Vi IMproved by Bram Moolenaar
|
|
* MacVim GUI port by Bjorn Winckler
|
|
*
|
|
* Do ":help uganda" in Vim to read copying and usage conditions.
|
|
* Do ":help credits" in Vim to see a list of people who contributed.
|
|
* See README.txt for an overview of the Vim source code.
|
|
*/
|
|
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
#import "Miscellaneous.h"
|
|
|
|
#if MM_ENABLE_ATSUI
|
|
|
|
enum { MMMaxCellsPerChar = 2 };
|
|
|
|
@class MMTextViewHelper;
|
|
|
|
|
|
@interface MMAtsuiTextView : NSView <NSTextInput> {
|
|
// From MMTextStorage
|
|
int maxRows, maxColumns;
|
|
NSColor *defaultBackgroundColor;
|
|
NSColor *defaultForegroundColor;
|
|
NSSize cellSize;
|
|
NSFont *font;
|
|
NSFont *fontWide;
|
|
float linespace;
|
|
float ascender;
|
|
|
|
// From NSTextView
|
|
NSSize insetSize;
|
|
|
|
// From vim-cocoa
|
|
NSImage *contentImage;
|
|
NSSize imageSize;
|
|
ATSUStyle atsuStyles[MMMaxCellsPerChar];
|
|
BOOL antialias;
|
|
|
|
MMTextViewHelper *helper;
|
|
}
|
|
|
|
- (id)initWithFrame:(NSRect)frame;
|
|
|
|
//
|
|
// MMTextStorage methods
|
|
//
|
|
- (int)maxRows;
|
|
- (int)maxColumns;
|
|
- (void)getMaxRows:(int*)rows columns:(int*)cols;
|
|
- (void)setMaxRows:(int)rows columns:(int)cols;
|
|
- (void)setDefaultColorsBackground:(NSColor *)bgColor
|
|
foreground:(NSColor *)fgColor;
|
|
- (NSColor *)defaultBackgroundColor;
|
|
- (NSColor *)defaultForegroundColor;
|
|
- (NSRect)rectForRowsInRange:(NSRange)range;
|
|
- (NSRect)rectForColumnsInRange:(NSRange)range;
|
|
|
|
- (void)setFont:(NSFont *)newFont;
|
|
- (void)setWideFont:(NSFont *)newFont;
|
|
- (NSFont *)font;
|
|
- (NSFont *)fontWide;
|
|
- (NSSize)cellSize;
|
|
- (void)setLinespace:(float)newLinespace;
|
|
|
|
//
|
|
// MMTextView methods
|
|
//
|
|
- (void)deleteSign:(NSString *)signName;
|
|
- (void)setToolTipAtMousePoint:(NSString *)string;
|
|
- (void)setPreEditRow:(int)row column:(int)col;
|
|
- (void)setMouseShape:(int)shape;
|
|
- (void)setAntialias:(BOOL)state;
|
|
- (void)setImControl:(BOOL)enable;
|
|
- (void)activateIm:(BOOL)enable;
|
|
- (BOOL)convertPoint:(NSPoint)point toRow:(int *)row column:(int *)column;
|
|
- (NSPoint)pointForRow:(int)row column:(int)col;
|
|
- (NSRect)rectForRow:(int)row column:(int)col numRows:(int)nr
|
|
numColumns:(int)nc;
|
|
|
|
//
|
|
// NSTextView methods
|
|
//
|
|
- (void)keyDown:(NSEvent *)event;
|
|
- (void)insertText:(id)string;
|
|
- (void)doCommandBySelector:(SEL)selector;
|
|
- (BOOL)performKeyEquivalent:(NSEvent *)event;
|
|
|
|
//
|
|
// NSTextContainer methods
|
|
//
|
|
- (void)setTextContainerInset:(NSSize)inset;
|
|
|
|
//
|
|
// MMAtsuiTextView methods
|
|
//
|
|
- (void)performBatchDrawWithData:(NSData *)data;
|
|
- (NSSize)desiredSize;
|
|
- (NSSize)minSize;
|
|
- (NSSize)constrainRows:(int *)rows columns:(int *)cols toSize:(NSSize)size;
|
|
|
|
@end
|
|
|
|
#endif // MM_ENABLE_ATSUI
|