diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/scintilla/cocoa/ScintillaTest/AppController.mm')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/scintilla/cocoa/ScintillaTest/AppController.mm | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/3rdparty/bgfx/3rdparty/scintilla/cocoa/ScintillaTest/AppController.mm b/3rdparty/bgfx/3rdparty/scintilla/cocoa/ScintillaTest/AppController.mm deleted file mode 100644 index 168a67681fc..00000000000 --- a/3rdparty/bgfx/3rdparty/scintilla/cocoa/ScintillaTest/AppController.mm +++ /dev/null @@ -1,282 +0,0 @@ -/** - * AppController.m - * ScintillaTest - * - * Created by Mike Lischke on 01.04.09. - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt). - */ - -#import "AppController.h" - -const char major_keywords[] = - "accessible add all alter analyze and as asc asensitive " - "before between bigint binary blob both by " - "call cascade case change char character check collate column condition connection constraint " - "continue convert create cross current_date current_time current_timestamp current_user cursor " - "database databases day_hour day_microsecond day_minute day_second dec decimal declare default " - "delayed delete desc describe deterministic distinct distinctrow div double drop dual " - "each else elseif enclosed escaped exists exit explain " - "false fetch float float4 float8 for force foreign from fulltext " - "goto grant group " - "having high_priority hour_microsecond hour_minute hour_second " - "if ignore in index infile inner inout insensitive insert int int1 int2 int3 int4 int8 integer " - "interval into is iterate " - "join " - "key keys kill " - "label leading leave left like limit linear lines load localtime localtimestamp lock long " - "longblob longtext loop low_priority " - "master_ssl_verify_server_cert match mediumblob mediumint mediumtext middleint minute_microsecond " - "minute_second mod modifies " - "natural not no_write_to_binlog null numeric " - "on optimize option optionally or order out outer outfile " - "precision primary procedure purge " - "range read reads read_only read_write real references regexp release rename repeat replace " - "require restrict return revoke right rlike " - "schema schemas second_microsecond select sensitive separator set show smallint spatial specific " - "sql sqlexception sqlstate sqlwarning sql_big_result sql_calc_found_rows sql_small_result ssl " - "starting straight_join " - "table terminated then tinyblob tinyint tinytext to trailing trigger true " - "undo union unique unlock unsigned update upgrade usage use using utc_date utc_time utc_timestamp " - "values varbinary varchar varcharacter varying " - "when where while with write " - "xor " - "year_month " - "zerofill"; - -const char procedure_keywords[] = // Not reserved words but intrinsic part of procedure definitions. - "begin comment end"; - -const char client_keywords[] = // Definition of keywords only used by clients, not the server itself. - "delimiter"; - -const char user_keywords[] = // Definition of own keywords, not used by MySQL. - "edit"; - -//-------------------------------------------------------------------------------------------------- - -@implementation AppController - -- (void) awakeFromNib -{ - // Manually set up the scintilla editor. Create an instance and dock it to our edit host. - // Leave some free space around the new view to avoid overlapping with the box borders. - NSRect newFrame = mEditHost.frame; - newFrame.size.width -= 2 * newFrame.origin.x; - newFrame.size.height -= 3 * newFrame.origin.y; - - mEditor = [[[ScintillaView alloc] initWithFrame: newFrame] autorelease]; - - [mEditHost.contentView addSubview: mEditor]; - [mEditor setAutoresizesSubviews: YES]; - [mEditor setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; - - // Let's load some text for the editor, as initial content. - NSError* error = nil; - - NSString* path = [[NSBundle mainBundle] pathForResource: @"TestData" - ofType: @"sql" inDirectory: nil]; - - NSString* sql = [NSString stringWithContentsOfFile: path - encoding: NSUTF8StringEncoding - error: &error]; - if (error && [[error domain] isEqual: NSCocoaErrorDomain]) - NSLog(@"%@", error); - - [mEditor setString: sql]; - - [self setupEditor]; -} - -//-------------------------------------------------------------------------------------------------- - -/** - * Initialize scintilla editor (styles, colors, markers, folding etc.]. - */ -- (void) setupEditor -{ - // Lexer type is MySQL. - [mEditor setGeneralProperty: SCI_SETLEXER parameter: SCLEX_MYSQL value: 0]; - // alternatively: [mEditor setEditorProperty: SCI_SETLEXERLANGUAGE parameter: nil value: (sptr_t) "mysql"]; - - // Number of styles we use with this lexer. - [mEditor setGeneralProperty: SCI_SETSTYLEBITS value: [mEditor getGeneralProperty: SCI_GETSTYLEBITSNEEDED]]; - - // Keywords to highlight. Indices are: - // 0 - Major keywords (reserved keywords) - // 1 - Normal keywords (everything not reserved but integral part of the language) - // 2 - Database objects - // 3 - Function keywords - // 4 - System variable keywords - // 5 - Procedure keywords (keywords used in procedures like "begin" and "end") - // 6..8 - User keywords 1..3 - [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 0 value: major_keywords]; - [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 5 value: procedure_keywords]; - [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 6 value: client_keywords]; - [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 7 value: user_keywords]; - - // Colors and styles for various syntactic elements. First the default style. - [mEditor setStringProperty: SCI_STYLESETFONT parameter: STYLE_DEFAULT value: @"Helvetica"]; - // [mEditor setStringProperty: SCI_STYLESETFONT parameter: STYLE_DEFAULT value: @"Monospac821 BT"]; // Very pleasing programmer's font. - [mEditor setGeneralProperty: SCI_STYLESETSIZE parameter: STYLE_DEFAULT value: 14]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: STYLE_DEFAULT value: [NSColor blackColor]]; - - [mEditor setGeneralProperty: SCI_STYLECLEARALL parameter: 0 value: 0]; - - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DEFAULT value: [NSColor blackColor]]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_COMMENT fromHTML: @"#097BF7"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_COMMENTLINE fromHTML: @"#097BF7"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_HIDDENCOMMAND fromHTML: @"#097BF7"]; - [mEditor setColorProperty: SCI_STYLESETBACK parameter: SCE_MYSQL_HIDDENCOMMAND fromHTML: @"#F0F0F0"]; - - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_VARIABLE fromHTML: @"378EA5"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_SYSTEMVARIABLE fromHTML: @"378EA5"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_KNOWNSYSTEMVARIABLE fromHTML: @"#3A37A5"]; - - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_NUMBER fromHTML: @"#7F7F00"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_SQSTRING fromHTML: @"#FFAA3E"]; - - // Note: if we were using ANSI quotes we would set the DQSTRING to the same color as the - // the back tick string. - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DQSTRING fromHTML: @"#274A6D"]; - - // Keyword highlighting. - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_MAJORKEYWORD fromHTML: @"#007F00"]; - [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_MAJORKEYWORD value: 1]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_KEYWORD fromHTML: @"#007F00"]; - [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_KEYWORD value: 1]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_PROCEDUREKEYWORD fromHTML: @"#56007F"]; - [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_PROCEDUREKEYWORD value: 1]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_USER1 fromHTML: @"#808080"]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_USER2 fromHTML: @"#808080"]; - [mEditor setColorProperty: SCI_STYLESETBACK parameter: SCE_MYSQL_USER2 fromHTML: @"#F0E0E0"]; - - // The following 3 styles have no impact as we did not set a keyword list for any of them. - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DATABASEOBJECT value: [NSColor redColor]]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_FUNCTION value: [NSColor redColor]]; - - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_IDENTIFIER value: [NSColor blackColor]]; - [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_QUOTEDIDENTIFIER fromHTML: @"#274A6D"]; - [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_SQL_OPERATOR value: 1]; - - // Line number style. - [mEditor setColorProperty: SCI_STYLESETFORE parameter: STYLE_LINENUMBER fromHTML: @"#F0F0F0"]; - [mEditor setColorProperty: SCI_STYLESETBACK parameter: STYLE_LINENUMBER fromHTML: @"#808080"]; - - [mEditor setGeneralProperty: SCI_SETMARGINTYPEN parameter: 0 value: SC_MARGIN_NUMBER]; - [mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 0 value: 35]; - - // Markers. - [mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 1 value: 16]; - - // Some special lexer properties. - [mEditor setLexerProperty: @"fold" value: @"1"]; - [mEditor setLexerProperty: @"fold.compact" value: @"0"]; - [mEditor setLexerProperty: @"fold.comment" value: @"1"]; - [mEditor setLexerProperty: @"fold.preprocessor" value: @"1"]; - - // Folder setup. - [mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 2 value: 16]; - [mEditor setGeneralProperty: SCI_SETMARGINMASKN parameter: 2 value: SC_MASK_FOLDERS]; - [mEditor setGeneralProperty: SCI_SETMARGINSENSITIVEN parameter: 2 value: 1]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEROPEN value: SC_MARK_BOXMINUS]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDER value: SC_MARK_BOXPLUS]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERSUB value: SC_MARK_VLINE]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERTAIL value: SC_MARK_LCORNER]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEREND value: SC_MARK_BOXPLUSCONNECTED]; - [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEROPENMID value: SC_MARK_BOXMINUSCONNECTED]; - [mEditor setGeneralProperty - : SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERMIDTAIL value: SC_MARK_TCORNER]; - for (int n= 25; n < 32; ++n) // Markers 25..31 are reserved for folding. - { - [mEditor setColorProperty: SCI_MARKERSETFORE parameter: n value: [NSColor whiteColor]]; - [mEditor setColorProperty: SCI_MARKERSETBACK parameter: n value: [NSColor blackColor]]; - } - - // Init markers & indicators for highlighting of syntax errors. - [mEditor setColorProperty: SCI_INDICSETFORE parameter: 0 value: [NSColor redColor]]; - [mEditor setGeneralProperty: SCI_INDICSETUNDER parameter: 0 value: 1]; - [mEditor setGeneralProperty: SCI_INDICSETSTYLE parameter: 0 value: INDIC_SQUIGGLE]; - - [mEditor setColorProperty: SCI_MARKERSETBACK parameter: 0 fromHTML: @"#B1151C"]; - - [mEditor setColorProperty: SCI_SETSELBACK parameter: 1 value: [NSColor selectedTextBackgroundColor]]; - - // Uncomment if you wanna see auto wrapping in action. - //[mEditor setGeneralProperty: SCI_SETWRAPMODE parameter: SC_WRAP_WORD value: 0]; - - InfoBar* infoBar = [[[InfoBar alloc] initWithFrame: NSMakeRect(0, 0, 400, 0)] autorelease]; - [infoBar setDisplay: IBShowAll]; - [mEditor setInfoBar: infoBar top: NO]; - [mEditor setStatusText: @"Operation complete"]; -} - -//-------------------------------------------------------------------------------------------------- - -/* XPM */ -static const char * box_xpm[] = { - "12 12 2 1", - " c None", - ". c #800000", - " .........", - " . . ..", - " . . . .", - "......... .", - ". . . .", - ". . . ..", - ". . .. .", - "......... .", - ". . . .", - ". . . . ", - ". . .. ", - "......... "}; - - -- (void) showAutocompletion -{ - const char *words = "Babylon-5?1 Battlestar-Galactica Millenium-Falcon?2 Moya?2 Serenity Voyager"; - [mEditor setGeneralProperty: SCI_AUTOCSETIGNORECASE parameter: 1 value:0]; - [mEditor setGeneralProperty: SCI_REGISTERIMAGE parameter: 1 value:(sptr_t)box_xpm]; - const int imSize = 12; - [mEditor setGeneralProperty: SCI_RGBAIMAGESETWIDTH parameter: imSize value:0]; - [mEditor setGeneralProperty: SCI_RGBAIMAGESETHEIGHT parameter: imSize value:0]; - char image[imSize * imSize * 4]; - for (size_t y = 0; y < imSize; y++) { - for (size_t x = 0; x < imSize; x++) { - char *p = image + (y * imSize + x) * 4; - p[0] = 0xFF; - p[1] = 0xA0; - p[2] = 0; - p[3] = x * 23; - } - } - [mEditor setGeneralProperty: SCI_REGISTERRGBAIMAGE parameter: 2 value:(sptr_t)image]; - [mEditor setGeneralProperty: SCI_AUTOCSHOW parameter: 0 value:(sptr_t)words]; -} - -- (IBAction) searchText: (id) sender -{ - NSSearchField* searchField = (NSSearchField*) sender; - [mEditor findAndHighlightText: [searchField stringValue] - matchCase: NO - wholeWord: NO - scrollTo: YES - wrap: YES]; - - long matchStart = [mEditor getGeneralProperty: SCI_GETSELECTIONSTART parameter: 0]; - long matchEnd = [mEditor getGeneralProperty: SCI_GETSELECTIONEND parameter: 0]; - [mEditor setGeneralProperty: SCI_FINDINDICATORFLASH parameter: matchStart value:matchEnd]; - - if ([[searchField stringValue] isEqualToString: @"XX"]) - [self showAutocompletion]; -} - --(IBAction) setFontQuality: (id) sender -{ - [ScintillaView directCall:mEditor message:SCI_SETFONTQUALITY wParam:[sender tag] lParam:0]; -} - -@end - -//-------------------------------------------------------------------------------------------------- - |